mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 04:29:52 +00:00
86aeefc7c9
When CMake 2.4 generates the build tree for CMake itself it asks the built CMake to install itself using the rules that 2.4 generated. Since the install rules use undocumented commands that are not compatible from 2.4 to 2.6 we need a special case to avoid failure. This sets a special indicator variable in the install rules that enables a compatibility hack to support the old install rule format.
115 lines
3.8 KiB
CMake
115 lines
3.8 KiB
CMake
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)
|
|
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)
|
|
|