CMakeLists.txt 3.6 KB

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