ENH: Add cross compiling support in the GUI in the same dialog that prompts for
[cmake.git] / Source / QtDialog / CMakeLists.txt
blobb74987ef5b0be91951ea4f670fcefb737100cee5
1 PROJECT(QtDialog)
2 SET(QT_MIN_VERSION "4.3.0")
3 FIND_PACKAGE(Qt4 REQUIRED)
5 IF(NOT QT4_FOUND)
6   MESSAGE(SEND_ERROR "Failed to find Qt 4.3 or greater.")
7 ELSE(NOT QT4_FOUND)
9   INCLUDE(${QT_USE_FILE})
10   SET(CMAKE_PACKAGE_QTGUI TRUE)
11   # i don't want to install or package the qt gui on windows 
12   # unless qt is static
13   IF(WIN32 AND NOT QT_CONFIG MATCHES "static")
14     SET(CMAKE_PACKAGE_QTGUI FALSE)
15   ENDIF(WIN32 AND NOT QT_CONFIG MATCHES "static")
16   SET(SRCS
17     AddCacheEntry.cxx
18     AddCacheEntry.h
19     CMakeFirstConfigure.cxx
20     CMakeFirstConfigure.h
21     CMakeSetup.cxx
22     CMakeSetupDialog.cxx
23     CMakeSetupDialog.h
24     QCMake.cxx
25     QCMake.h
26     QCMakeCacheView.cxx
27     QCMakeCacheView.h
28     QCMakeWidgets.cxx
29     QCMakeWidgets.h
30     QMacInstallDialog.cxx
31     QMacInstallDialog.h
32     )
33   QT4_WRAP_UI(UI_SRCS 
34     CMakeFirstConfigure.ui
35     CMakeSetupDialog.ui
36     AddCacheEntry.ui
37     MacInstallDialog.ui
38     )
39   QT4_WRAP_CPP(MOC_SRCS 
40     AddCacheEntry.h
41     CMakeFirstConfigure.h
42     CMakeSetupDialog.h
43     QCMake.h
44     QCMakeCacheView.h
45     QCMakeWidgets.h
46     QMacInstallDialog.h
47     )
48   QT4_ADD_RESOURCES(RC_SRCS CMakeSetup.qrc)
50   SET(SRCS ${SRCS} ${UI_SRCS} ${MOC_SRCS} ${RC_SRCS})
51   IF(Q_WS_WIN)
52     SET(SRCS ${SRCS} CMakeSetup.rc)
53   ENDIF(Q_WS_WIN)
54   IF(Q_WS_MAC)
55     SET(SRCS ${SRCS} CMakeSetup.icns)
56     SET(MACOSX_BUNDLE_ICON_FILE CMakeSetup.icns)
57     SET_SOURCE_FILES_PROPERTIES(CMakeSetup.icns PROPERTIES
58       MACOSX_PACKAGE_LOCATION Resources)
59   ENDIF(Q_WS_MAC)
61   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
62   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
64   ADD_EXECUTABLE(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS})
65   TARGET_LINK_LIBRARIES(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES})
66   IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
67     IF(APPLE)
68       SET_TARGET_PROPERTIES(cmake-gui PROPERTIES
69        OUTPUT_NAME ${CMAKE_BUNDLE_NAME})
70     ENDIF(APPLE)
71     SET(CMAKE_INSTALL_DESTINATION_ARGS 
72       BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}")
73   ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
74   # if qt is not static and we are on windows then skip the install
75   # I don't want to distribute qt dlls
76   IF(CMAKE_PACKAGE_QTGUI)
77     INSTALL(TARGETS cmake-gui RUNTIME DESTINATION bin
78     ${CMAKE_INSTALL_DESTINATION_ARGS})
79   ENDIF(CMAKE_PACKAGE_QTGUI)
81   IF(UNIX)
82     # install a desktop file so CMake appears in the application start menu
83     # with an icon
84     INSTALL(FILES CMake.desktop DESTINATION share/applications )
85     INSTALL(FILES CMakeSetup.png DESTINATION share/pixmaps )
86     INSTALL(FILES cmakecache.xml DESTINATION share/mime/packages )
87   ENDIF(UNIX)
89   IF(APPLE)
90     SET(CMAKE_POSTFLIGHT_SCRIPT
91       "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh")
92     SET(CMAKE_POSTUPGRADE_SCRIPT
93       "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh")
94     configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postflight.sh.in"
95       "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh")
96     configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postupgrade.sh.in"
97       "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh")
98     INSTALL(CODE "execute_process(COMMAND ln -s \"../MacOS/${CMAKE_BUNDLE_NAME}\" cmake-gui
99                   WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)")
100     INSTALL(CODE "set(input_file
101        \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}\")")
102     INSTALL(SCRIPT "${CMake_SOURCE_DIR}/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake")
103   ENDIF(APPLE)
104   CONFIGURE_FILE("${QtDialog_SOURCE_DIR}/QtDialogCPack.cmake.in"
105     "${QtDialog_BINARY_DIR}/QtDialogCPack.cmake" @ONLY)    
106 ENDIF(NOT QT4_FOUND)