36bb624907
CMake 2.4 generates old-style cmake_install.cmake code including calls to the file(INSTALL) command with the COMPONENTS argument. We need to set CMAKE_INSTALL_SELF_2_4 for the whole install tree to prevent the command from complaining in this special case. Previously this was needed only in the QtDialog directory, but now it is needed in the entire tree.
112 lines
3.7 KiB
CMake
112 lines
3.7 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)
|
|
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}")
|
|
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)
|
|
|