CMakeLists.txt 3.4 KB

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