PROJECT(QtDialog) SET(QT_MIN_VERSION "4.3.0") FIND_PACKAGE(Qt4 REQUIRED) IF(NOT QT4_FOUND) MESSAGE(SEND_ERROR "Failed to find Qt 4.3 or greater.") ELSE(NOT QT4_FOUND) INCLUDE(${QT_USE_FILE}) SET(CMAKE_PACKAGE_QTGUI TRUE) # i don't want to install or package the qt gui on windows # unless qt is static IF(WIN32 AND NOT QT_CONFIG MATCHES "static") SET(CMAKE_PACKAGE_QTGUI FALSE) MESSAGE(STATUS "WARNING: QtDialog requires a static built qt for installation.") ENDIF(WIN32 AND NOT QT_CONFIG MATCHES "static") SET(SRCS AddCacheEntry.cxx AddCacheEntry.h CMakeSetup.cxx CMakeSetupDialog.cxx CMakeSetupDialog.h FirstConfigure.cxx FirstConfigure.h QCMake.cxx QCMake.h QCMakeCacheView.cxx QCMakeCacheView.h QCMakeWidgets.cxx QCMakeWidgets.h QMacInstallDialog.cxx QMacInstallDialog.h ) QT4_WRAP_UI(UI_SRCS CMakeSetupDialog.ui Compilers.ui CrossCompiler.ui AddCacheEntry.ui MacInstallDialog.ui ) QT4_WRAP_CPP(MOC_SRCS AddCacheEntry.h Compilers.h CMakeSetupDialog.h FirstConfigure.h QCMake.h QCMakeCacheView.h QCMakeWidgets.h QMacInstallDialog.h ) QT4_ADD_RESOURCES(RC_SRCS CMakeSetup.qrc) SET(SRCS ${SRCS} ${UI_SRCS} ${MOC_SRCS} ${RC_SRCS}) IF(Q_WS_WIN) SET(SRCS ${SRCS} CMakeSetup.rc) ENDIF(Q_WS_WIN) IF(Q_WS_MAC) SET(SRCS ${SRCS} CMakeSetup.icns) SET(MACOSX_BUNDLE_ICON_FILE CMakeSetup.icns) SET_SOURCE_FILES_PROPERTIES(CMakeSetup.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) ENDIF(Q_WS_MAC) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_EXECUTABLE(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS}) TARGET_LINK_LIBRARIES(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES}) IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) IF(APPLE) SET_TARGET_PROPERTIES(cmake-gui PROPERTIES OUTPUT_NAME ${CMAKE_BUNDLE_NAME}) ENDIF(APPLE) SET(CMAKE_INSTALL_DESTINATION_ARGS BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}") ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) # Since the built CMake will install itself instead of the # generating CMake, tell it that the install rules were generated # by CMake 2.4. INSTALL(CODE "SET(CMAKE_INSTALL_SELF_2_4 1)") ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) # if qt is not static and we are on windows then skip the install # I don't want to distribute qt dlls IF(CMAKE_PACKAGE_QTGUI) INSTALL(TARGETS cmake-gui RUNTIME DESTINATION bin ${CMAKE_INSTALL_DESTINATION_ARGS}) ENDIF(CMAKE_PACKAGE_QTGUI) IF(UNIX) # install a desktop file so CMake appears in the application start menu # with an icon INSTALL(FILES CMake.desktop DESTINATION share/applications ) INSTALL(FILES CMakeSetup.png DESTINATION share/pixmaps ) INSTALL(FILES cmakecache.xml DESTINATION share/mime/packages ) ENDIF(UNIX) IF(APPLE) SET(CMAKE_POSTFLIGHT_SCRIPT "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh") SET(CMAKE_POSTUPGRADE_SCRIPT "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh") configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postflight.sh.in" "${CMake_BINARY_DIR}/Source/QtDialog/postflight.sh") configure_file("${CMake_SOURCE_DIR}/Source/QtDialog/postupgrade.sh.in" "${CMake_BINARY_DIR}/Source/QtDialog/postupgrade.sh") INSTALL(CODE "execute_process(COMMAND ln -s \"../MacOS/${CMAKE_BUNDLE_NAME}\" cmake-gui WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin)") INSTALL(CODE "set(input_file \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}\")") INSTALL(SCRIPT "${CMake_SOURCE_DIR}/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake") ENDIF(APPLE) CONFIGURE_FILE("${QtDialog_SOURCE_DIR}/QtDialogCPack.cmake.in" "${QtDialog_BINARY_DIR}/QtDialogCPack.cmake" @ONLY) ENDIF(NOT QT4_FOUND)