From 026aad30839321091733ed5f168bc022677208b4 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Thu, 7 Jan 2010 15:44:41 +0000 Subject: we need 2.6.3 for the shared-desktop-ontologies cmake check svn path=/branches/KDE/4.4/kdelibs/; revision=1071124 --- modules/FindKDE4Internal.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index c6f5599e..672a6db5 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -275,7 +275,7 @@ # this is required now by cmake 2.6 and so must not be skipped by if(KDE4_FOUND) below -cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) +cmake_minimum_required(VERSION 2.6.3 FATAL_ERROR) # set the cmake policies to the 2.4.x compatibility settings (may change for KDE 4.3) cmake_policy(VERSION 2.4.5) -- cgit v1.2.1 From 298082f55111f0e4c4d732d0a44a95cd3e9b1d35 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Thu, 7 Jan 2010 19:19:59 +0000 Subject: -we require 2.6.2, nothing else, we can discuss a higher version for 4.5, not for 4.4.x. How can you change like the most important property of our buildsystem while branching for the release without even letting kde-buildsystem or the maintainer (me) know ??? Alex CCMAIL: release-team@kde.org svn path=/branches/KDE/4.4/kdelibs/; revision=1071246 --- modules/FindKDE4Internal.cmake | 2 +- modules/FindSharedDesktopOntologies.cmake | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index 672a6db5..c6f5599e 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -275,7 +275,7 @@ # this is required now by cmake 2.6 and so must not be skipped by if(KDE4_FOUND) below -cmake_minimum_required(VERSION 2.6.3 FATAL_ERROR) +cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) # set the cmake policies to the 2.4.x compatibility settings (may change for KDE 4.3) cmake_policy(VERSION 2.4.5) diff --git a/modules/FindSharedDesktopOntologies.cmake b/modules/FindSharedDesktopOntologies.cmake index 2bca1df3..eecd608a 100644 --- a/modules/FindSharedDesktopOntologies.cmake +++ b/modules/FindSharedDesktopOntologies.cmake @@ -21,7 +21,14 @@ # First try the SharedDesktopOntologiesConfig.cmake from shared-desktop-ontologies 0.2 and newer -find_package(SharedDesktopOntologies ${SharedDesktopOntologies_FIND_VERSION} QUIET NO_MODULE) + +# This is to make it work with cmake 2.6.2, since SDO 0.2 installs its config file into +# the 2.6.3 compatible location only ( share/cmake/SDO/ instead share/SDO/[cmake/] ) +if( "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.6.3") + find_path(_SDO_CONFIG_DIR SharedDesktopOntologiesConfig.cmake PATH_SUFFIXES share/cmake/SharedDesktopOntologies/ ) +endif( "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.6.3") + +find_package(SharedDesktopOntologies ${SharedDesktopOntologies_FIND_VERSION} QUIET NO_MODULE HINTS "${_SDO_CONFIG_DIR}" ) if (SHAREDDESKTOPONTOLOGIES_ROOT_DIR) mark_as_advanced(SHAREDDESKTOPONTOLOGIES_ROOT_DIR) -- cgit v1.2.1 From 08134581fe028a5dd1a94b9b8bc2022c7c1e23f9 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Sun, 17 Jan 2010 18:11:01 +0000 Subject: -use imported targets for the Qt4 libs also in the 4.4 release branch This fixes handling release and debug versions of Qt, and is a major improvement for the deployment of KDE under Windows. Alex svn path=/branches/KDE/4.4/kdelibs/; revision=1076181 --- modules/FindKDE4Internal.cmake | 16 ++++- modules/FindQt4.cmake | 70 +++++++++++----------- ...leImportedTargetsInCMakeRequiredLibraries.cmake | 16 +++-- 3 files changed, 59 insertions(+), 43 deletions(-) diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index c6f5599e..569776a6 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -303,6 +303,10 @@ endif(POLICY CMP0011) # Only do something if it hasn't been found yet if(NOT KDE4_FOUND) +# get the directory of the current file, used later on in the file +get_filename_component( kde_cmake_module_dir ${CMAKE_CURRENT_LIST_FILE} PATH) + + include (MacroEnsureVersion) # We may only search for other packages with "REQUIRED" if we are required ourselves. @@ -317,6 +321,13 @@ else(KDE4_FIND_REQUIRED OR KDE4Internal_FIND_REQUIRED) set(_REQ_STRING_KDE4_MESSAGE "STATUS") endif(KDE4_FIND_REQUIRED OR KDE4Internal_FIND_REQUIRED) + +# Store CMAKE_MODULE_PATH and then append the current dir to it, so we are sure +# we get the FindQt4.cmake located next to us and not a different one. +# The original CMAKE_MODULE_PATH is restored later on. +set(_kde_cmake_module_path_back ${CMAKE_MODULE_PATH}) +set(CMAKE_MODULE_PATH ${kde_cmake_module_dir} ${CMAKE_MODULE_PATH} ) + # if the minimum Qt requirement is changed, change all occurrence in the # following lines if( NOT QT_MIN_VERSION ) @@ -351,6 +362,8 @@ if(NOT PERL_FOUND) message(STATUS "Perl not found") endif(NOT PERL_FOUND) +# restore the original CMAKE_MODULE_PATH +set(CMAKE_MODULE_PATH ${_kde_cmake_module_path_back}) # we check for Phonon not here, but further below, i.e. after KDELibsDependencies.cmake # has been loaded, which helps in the case that phonon is installed to the same @@ -390,9 +403,6 @@ include (CheckCXXCompilerFlag) include (CheckCXXSourceCompiles) -# get the directory of the current file, used later on in the file -get_filename_component( kde_cmake_module_dir ${CMAKE_CURRENT_LIST_FILE} PATH) - # are we trying to compile kdelibs ? kdelibs_SOURCE_DIR comes from "project(kdelibs)" in kdelibs/CMakeLists.txt # then enter bootstrap mode diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 864828f8..c5fc6b06 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -361,10 +361,10 @@ IF(QT_QT_LIBRARY) ENDIF(QT_QT_LIBRARY) -IF (QT4_QMAKE_FOUND) +IF (QT4_QMAKE_FOUND AND Qt4ImportedTarget__QtCore) # Check already done in this cmake run, nothing more to do RETURN() -ENDIF (QT4_QMAKE_FOUND) +ENDIF (QT4_QMAKE_FOUND AND Qt4ImportedTarget__QtCore) # check that QT_NO_DEBUG is defined for release configurations MACRO(QT_CHECK_FLAG_EXISTS FLAG VAR DOC) @@ -892,43 +892,41 @@ IF (QT4_QMAKE_FOUND) ############################################ MACRO (_QT4_ADJUST_LIB_VARS basename) + # The name of the imported targets, i.e. the prefix "Qt4ImportedTarget__" must not change, + # since it is stored in EXPORT-files as name of a required library. If the name would change + # here, this would lead to the imported Qt4-library targets not being resolved by cmake anymore. IF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) + IF(NOT TARGET Qt4ImportedTarget__${basename}) + ADD_LIBRARY(Qt4ImportedTarget__${basename} SHARED IMPORTED ) + + IF(WIN32) + SET(_QT4_LIBRARY_PROPERTY_NAME IMPLIB) + ELSE(WIN32) + SET(_QT4_LIBRARY_PROPERTY_NAME LOCATION) + ENDIF(WIN32) + + + IF (QT_${basename}_LIBRARY_RELEASE) + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_RELEASE "${QT_${basename}_LIBRARY_RELEASE}" ) + ENDIF (QT_${basename}_LIBRARY_RELEASE) + + IF (QT_${basename}_LIBRARY_DEBUG) + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_DEBUG "${QT_${basename}_LIBRARY_DEBUG}" ) + + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY MAP_IMPORTED_CONFIG_PROFILE DEBUG) + SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY MAP_IMPORTED_CONFIG_DEBUGFULL DEBUG) + ENDIF (QT_${basename}_LIBRARY_DEBUG) + + SET(QT_${basename}_LIBRARY Qt4ImportedTarget__${basename} ) + SET(QT_${basename}_LIBRARIES Qt4ImportedTarget__${basename} ) - # if the release- as well as the debug-version of the library have been found: - IF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) - # if the generator supports configuration types then set - # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value - IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(QT_${basename}_LIBRARY optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) - ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - # if there are no configuration types and CMAKE_BUILD_TYPE has no value - # then just use the release libraries - SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE} ) - ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(QT_${basename}_LIBRARIES optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) - ENDIF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) - - # if only the release version was found, set the debug variable also to the release version - IF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) - SET(QT_${basename}_LIBRARY_DEBUG ${QT_${basename}_LIBRARY_RELEASE}) - SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE}) - SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_RELEASE}) - ENDIF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) - - # if only the debug version was found, set the release variable also to the debug version - IF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) - SET(QT_${basename}_LIBRARY_RELEASE ${QT_${basename}_LIBRARY_DEBUG}) - SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_DEBUG}) - SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_DEBUG}) - ENDIF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) - - # put the value in the cache: - SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE STRING "The Qt ${basename} library" FORCE) - - IF (QT_${basename}_LIBRARY) - SET(QT_${basename}_FOUND 1) - ENDIF (QT_${basename}_LIBRARY) + IF (QT_${basename}_LIBRARY) + SET(QT_${basename}_FOUND 1) + ENDIF (QT_${basename}_LIBRARY) + ENDIF(NOT TARGET Qt4ImportedTarget__${basename}) ENDIF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) IF (QT_${basename}_INCLUDE_DIR) diff --git a/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake b/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake index 28564ab6..e28efd44 100644 --- a/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake +++ b/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake @@ -44,15 +44,23 @@ FUNCTION(HANDLE_IMPORTED_TARGETS_IN_CMAKE_REQUIRED_LIBRARIES _RESULT) ENDIF ("${_CCSR_LOOP_COUNTER}" LESS 100) LIST(GET _importedConfigs 0 _firstImportedConfig) - GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} LOCATION_${_firstImportedConfig}) + IF(NOT WIN32) + GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_LOCATION_${_firstImportedConfig}) + ELSE(NOT WIN32) + GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_IMPLIB_${_firstImportedConfig}) + ENDIF(NOT WIN32) GET_TARGET_PROPERTY(_linkInterfaceLibs ${_CURRENT_LIB} IMPORTED_LINK_INTERFACE_LIBRARIES_${_firstImportedConfig} ) LIST(APPEND _CCSR_NEW_REQ_LIBS ${_firstImportedLocation}) # MESSAGE(STATUS "Appending lib ${_CURRENT_LIB} as ${_firstImportedLocation}") - FOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs}) + IF(_linkInterfaceLibs) + FOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs}) # MESSAGE(STATUS "Appending link interface lib ${_currentLinkInterfaceLib}") - LIST(APPEND _CCSR_NEW_REQ_LIBS ${_currentLinkInterfaceLib} ) - ENDFOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs}) + IF(_currentLinkInterfaceLib) + LIST(APPEND _CCSR_NEW_REQ_LIBS ${_currentLinkInterfaceLib} ) + ENDIF(_currentLinkInterfaceLib) + ENDFOREACH(_currentLinkInterfaceLib ${_linkInterfaceLibs}) + ENDIF(_linkInterfaceLibs) ELSE(_importedConfigs) # "Normal" libraries are just used as they are. LIST(APPEND _CCSR_NEW_REQ_LIBS ${_CURRENT_LIB} ) -- cgit v1.2.1 From b62c9ee93f3cec43145514d5fb9b76e1e43a6b0c Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Mon, 18 Jan 2010 22:31:01 +0000 Subject: -same as in trunk: -fix two remaining compat. issues found by the cmake devs: -- the imported targets did not work with Qt installed as frameworks on OSX -- if a project exported its libraries, and these libraries depend on Qt libs, but the installed FooConfig.cmake files do not load FindQt4.cmake, this would result in unknown targets "Qt4::QtCore" etc. So now there is a switch to enable the imported targets explicitely (what we do for KDE) Alex svn path=/branches/KDE/4.4/kdelibs/; revision=1076826 --- modules/FindKDE4Internal.cmake | 4 + modules/FindQt4.cmake | 166 +++++++++++++++++++++---------- modules/Qt4ConfigDependentSettings.cmake | 4 +- 3 files changed, 117 insertions(+), 57 deletions(-) diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index 569776a6..1ce3a7cb 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -337,6 +337,10 @@ if( ${QT_MIN_VERSION} VERSION_LESS "4.5.0" ) set(QT_MIN_VERSION "4.5.0") endif( ${QT_MIN_VERSION} VERSION_LESS "4.5.0" ) +# Tell FindQt4.cmake to point the QT_QTFOO_LIBRARY targets at the imported targets +# for the Qt libraries, so we get full handling of release and debug versions of the +# Qt libs and are flexible regarding the install location of Qt under Windows: +set(QT_USE_IMPORTED_TARGETS TRUE) #this line includes FindQt4.cmake, which searches the Qt library and headers # TODO: we should check here that all necessary modules of Qt have been found, e.g. QtDBus diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index c5fc6b06..0c392676 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -52,6 +52,18 @@ # QT_USE_PHONON # QT_USE_QTSCRIPTTOOLS # +# QT_USE_IMPORTED_TARGETS +# If this variable is set to TRUE, FindQt4.cmake will create imported +# library targets for the various Qt libraries and set the +# library variables like QT_QTCORE_LIBRARY to point at these imported +# targets instead of the library file on disk. This provides much better +# handling of the release and debug versions of the Qt libraries and is +# also always backwards compatible, except for the case that dependencies +# of libraries are exported, these will then also list the names of the +# imported targets as dependency and not the file location on disk. This +# is much more flexible, but requires that FindQt4.cmake is executed before +# such an exported dependency file is processed. +# # There are also some files that need processing by some Qt tools such as moc # and uic. Listed below are macros that may be used to process those files. # @@ -361,10 +373,10 @@ IF(QT_QT_LIBRARY) ENDIF(QT_QT_LIBRARY) -IF (QT4_QMAKE_FOUND AND Qt4ImportedTarget__QtCore) +IF (QT4_QMAKE_FOUND AND Qt4::QtCore) # Check already done in this cmake run, nothing more to do RETURN() -ENDIF (QT4_QMAKE_FOUND AND Qt4ImportedTarget__QtCore) +ENDIF (QT4_QMAKE_FOUND AND Qt4::QtCore) # check that QT_NO_DEBUG is defined for release configurations MACRO(QT_CHECK_FLAG_EXISTS FLAG VAR DOC) @@ -891,42 +903,86 @@ IF (QT4_QMAKE_FOUND) # ############################################ - MACRO (_QT4_ADJUST_LIB_VARS basename) - # The name of the imported targets, i.e. the prefix "Qt4ImportedTarget__" must not change, + # On OSX when Qt is found as framework, never use the imported targets for now, since + # in this case the handling of the framework directory currently does not work correctly. + IF(QT_USE_FRAMEWORKS) + SET(QT_USE_IMPORTED_TARGETS FALSE) + ENDIF(QT_USE_FRAMEWORKS) + + + MACRO (_QT4_ADJUST_LIB_VARS _camelCaseBasename) + + STRING(TOUPPER "${_camelCaseBasename}" basename) + + # The name of the imported targets, i.e. the prefix "Qt4::" must not change, # since it is stored in EXPORT-files as name of a required library. If the name would change # here, this would lead to the imported Qt4-library targets not being resolved by cmake anymore. IF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) - IF(NOT TARGET Qt4ImportedTarget__${basename}) - ADD_LIBRARY(Qt4ImportedTarget__${basename} SHARED IMPORTED ) - - IF(WIN32) - SET(_QT4_LIBRARY_PROPERTY_NAME IMPLIB) - ELSE(WIN32) - SET(_QT4_LIBRARY_PROPERTY_NAME LOCATION) - ENDIF(WIN32) + IF(NOT TARGET Qt4::${_camelCaseBasename}) + ADD_LIBRARY(Qt4::${_camelCaseBasename} UNKNOWN IMPORTED ) IF (QT_${basename}_LIBRARY_RELEASE) - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_RELEASE "${QT_${basename}_LIBRARY_RELEASE}" ) + SET_PROPERTY(TARGET Qt4::${_camelCaseBasename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + SET_PROPERTY(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_RELEASE "${QT_${basename}_LIBRARY_RELEASE}" ) ENDIF (QT_${basename}_LIBRARY_RELEASE) IF (QT_${basename}_LIBRARY_DEBUG) - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_DEBUG "${QT_${basename}_LIBRARY_DEBUG}" ) - - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY MAP_IMPORTED_CONFIG_PROFILE DEBUG) - SET_PROPERTY(TARGET Qt4ImportedTarget__${basename} PROPERTY MAP_IMPORTED_CONFIG_DEBUGFULL DEBUG) + SET_PROPERTY(TARGET Qt4::${_camelCaseBasename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + SET_PROPERTY(TARGET Qt4::${_camelCaseBasename} PROPERTY IMPORTED_LOCATION_DEBUG "${QT_${basename}_LIBRARY_DEBUG}" ) ENDIF (QT_${basename}_LIBRARY_DEBUG) + ENDIF(NOT TARGET Qt4::${_camelCaseBasename}) + + # If QT_USE_IMPORTED_TARGETS is enabled, the QT_QTFOO_LIBRARY variables are set to point at these + # imported targets. This works better in general, and is also in almost all cases fully + # backward compatible. The only issue is when a project A which had this enabled then exports its + # libraries via export or EXPORT_LIBRARY_DEPENDENCIES(). In this case the libraries from project + # A will depend on the imported Qt targets, and the names of these imported targets will be stored + # in the dependency files on disk. This means when a project B then uses project A, these imported + # targets must be created again, otherwise e.g. "Qt4__QtCore" will be interpreted as name of a + # library file on disk, and not as a target, and linking will fail: + IF(QT_USE_IMPORTED_TARGETS) + SET(QT_${basename}_LIBRARY Qt4::${_camelCaseBasename} ) + SET(QT_${basename}_LIBRARIES Qt4::${_camelCaseBasename} ) + ELSE(QT_USE_IMPORTED_TARGETS) + + # if the release- as well as the debug-version of the library have been found: + IF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) + # if the generator supports configuration types then set + # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value + IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(QT_${basename}_LIBRARY optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) + ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + # if there are no configuration types and CMAKE_BUILD_TYPE has no value + # then just use the release libraries + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE} ) + ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(QT_${basename}_LIBRARIES optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) + + # if only the release version was found, set the debug variable also to the release version + IF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) + SET(QT_${basename}_LIBRARY_DEBUG ${QT_${basename}_LIBRARY_RELEASE}) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE}) + SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_RELEASE}) + ENDIF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) + + # if only the debug version was found, set the release variable also to the debug version + IF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) + SET(QT_${basename}_LIBRARY_RELEASE ${QT_${basename}_LIBRARY_DEBUG}) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_DEBUG}) + SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) + + # put the value in the cache: + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE STRING "The Qt ${basename} library" FORCE) + + ENDIF(QT_USE_IMPORTED_TARGETS) + +message(STATUS "QT_${basename}_LIBRARY: ${QT_${basename}_LIBRARY}") + + SET(QT_${basename}_FOUND 1) - SET(QT_${basename}_LIBRARY Qt4ImportedTarget__${basename} ) - SET(QT_${basename}_LIBRARIES Qt4ImportedTarget__${basename} ) - - IF (QT_${basename}_LIBRARY) - SET(QT_${basename}_FOUND 1) - ENDIF (QT_${basename}_LIBRARY) - - ENDIF(NOT TARGET Qt4ImportedTarget__${basename}) ENDIF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) IF (QT_${basename}_INCLUDE_DIR) @@ -941,39 +997,39 @@ IF (QT4_QMAKE_FOUND) # Set QT_xyz_LIBRARY variable and add # library include path to QT_INCLUDES - _QT4_ADJUST_LIB_VARS(QTCORE) - _QT4_ADJUST_LIB_VARS(QTGUI) - _QT4_ADJUST_LIB_VARS(QT3SUPPORT) - _QT4_ADJUST_LIB_VARS(QTASSISTANT) - _QT4_ADJUST_LIB_VARS(QTASSISTANTCLIENT) - _QT4_ADJUST_LIB_VARS(QTCLUCENE) - _QT4_ADJUST_LIB_VARS(QTDBUS) - _QT4_ADJUST_LIB_VARS(QTDESIGNER) - _QT4_ADJUST_LIB_VARS(QTDESIGNERCOMPONENTS) - _QT4_ADJUST_LIB_VARS(QTHELP) - _QT4_ADJUST_LIB_VARS(QTMULTIMEDIA) - _QT4_ADJUST_LIB_VARS(QTNETWORK) - _QT4_ADJUST_LIB_VARS(QTNSPLUGIN) - _QT4_ADJUST_LIB_VARS(QTOPENGL) - _QT4_ADJUST_LIB_VARS(QTSCRIPT) - _QT4_ADJUST_LIB_VARS(QTSCRIPTTOOLS) - _QT4_ADJUST_LIB_VARS(QTSQL) - _QT4_ADJUST_LIB_VARS(QTSVG) - _QT4_ADJUST_LIB_VARS(QTTEST) - _QT4_ADJUST_LIB_VARS(QTUITOOLS) - _QT4_ADJUST_LIB_VARS(QTWEBKIT) - _QT4_ADJUST_LIB_VARS(QTXML) - _QT4_ADJUST_LIB_VARS(QTXMLPATTERNS) - _QT4_ADJUST_LIB_VARS(PHONON) + _QT4_ADJUST_LIB_VARS(QtCore) + _QT4_ADJUST_LIB_VARS(QtGui) + _QT4_ADJUST_LIB_VARS(Qt3Support) + _QT4_ADJUST_LIB_VARS(QtAssistant) + _QT4_ADJUST_LIB_VARS(QtAssistantClient) + _QT4_ADJUST_LIB_VARS(QtCLucene) + _QT4_ADJUST_LIB_VARS(QtDBus) + _QT4_ADJUST_LIB_VARS(QtDesigner) + _QT4_ADJUST_LIB_VARS(QtDesignerComponents) + _QT4_ADJUST_LIB_VARS(QtHelp) + _QT4_ADJUST_LIB_VARS(QtMultimedia) + _QT4_ADJUST_LIB_VARS(QtNetwork) + _QT4_ADJUST_LIB_VARS(QtNsPlugin) + _QT4_ADJUST_LIB_VARS(QtOpenGL) + _QT4_ADJUST_LIB_VARS(QtScript) + _QT4_ADJUST_LIB_VARS(QtScriptTools) + _QT4_ADJUST_LIB_VARS(QtSql) + _QT4_ADJUST_LIB_VARS(QtSvg) + _QT4_ADJUST_LIB_VARS(QtTest) + _QT4_ADJUST_LIB_VARS(QtUiTools) + _QT4_ADJUST_LIB_VARS(QtWebKit) + _QT4_ADJUST_LIB_VARS(QtXml) + _QT4_ADJUST_LIB_VARS(QtXmlPatterns) + _QT4_ADJUST_LIB_VARS(phonon) # platform dependent libraries IF(Q_WS_X11) - _QT4_ADJUST_LIB_VARS(QTMOTIF) + _QT4_ADJUST_LIB_VARS(QtMotif) ENDIF(Q_WS_X11) IF(WIN32) - _QT4_ADJUST_LIB_VARS(QTMAIN) - _QT4_ADJUST_LIB_VARS(QAXSERVER) - _QT4_ADJUST_LIB_VARS(QAXCONTAINER) + _QT4_ADJUST_LIB_VARS(qtmain) + _QT4_ADJUST_LIB_VARS(QAxServer) + _QT4_ADJUST_LIB_VARS(QAxContainer) ENDIF(WIN32) # If Qt is installed as a framework, we need to add QT_QTCORE_LIBRARY here (which diff --git a/modules/Qt4ConfigDependentSettings.cmake b/modules/Qt4ConfigDependentSettings.cmake index f6062a74..d6fc2d44 100644 --- a/modules/Qt4ConfigDependentSettings.cmake +++ b/modules/Qt4ConfigDependentSettings.cmake @@ -57,9 +57,9 @@ ELSE(WIN32) # On other platforms, check file extension to know if its static IF(QT_QTCORE_LIBRARY_RELEASE) GET_FILENAME_COMPONENT(qtcore_lib_ext "${QT_QTCORE_LIBRARY_RELEASE}" EXT) - IF(${qtcore_lib_ext} STREQUAL ${CMAKE_STATIC_LIBRARY_SUFFIX}) + IF("${qtcore_lib_ext}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}") SET(QT_IS_STATIC 1) - ENDIF(${qtcore_lib_ext} STREQUAL ${CMAKE_STATIC_LIBRARY_SUFFIX}) + ENDIF("${qtcore_lib_ext}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}") ENDIF(QT_QTCORE_LIBRARY_RELEASE) IF(QT_QTCORE_LIBRARY_DEBUG) GET_FILENAME_COMPONENT(qtcore_lib_ext "${QT_QTCORE_LIBRARY_DEBUG}" EXT) -- cgit v1.2.1 From 1b6370cac6fb270b5ec4d667c9acb41d5a08429c Mon Sep 17 00:00:00 2001 From: Patrick Spendrin Date: Wed, 20 Jan 2010 13:57:36 +0000 Subject: this is not needed anymore due to the changes in FindQt4.cmake CCMAIL:neundorf@kde.org svn path=/branches/KDE/4.4/kdelibs/; revision=1077613 --- modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake b/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake index e28efd44..b775b424 100644 --- a/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake +++ b/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake @@ -44,11 +44,7 @@ FUNCTION(HANDLE_IMPORTED_TARGETS_IN_CMAKE_REQUIRED_LIBRARIES _RESULT) ENDIF ("${_CCSR_LOOP_COUNTER}" LESS 100) LIST(GET _importedConfigs 0 _firstImportedConfig) - IF(NOT WIN32) - GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_LOCATION_${_firstImportedConfig}) - ELSE(NOT WIN32) - GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_IMPLIB_${_firstImportedConfig}) - ENDIF(NOT WIN32) + GET_TARGET_PROPERTY(_firstImportedLocation ${_CURRENT_LIB} IMPORTED_LOCATION_${_firstImportedConfig}) GET_TARGET_PROPERTY(_linkInterfaceLibs ${_CURRENT_LIB} IMPORTED_LINK_INTERFACE_LIBRARIES_${_firstImportedConfig} ) LIST(APPEND _CCSR_NEW_REQ_LIBS ${_firstImportedLocation}) -- cgit v1.2.1 From f907cfe8a218688be5cdabde2ebf67ec3f7b0f1a Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Fri, 22 Jan 2010 16:49:00 +0000 Subject: -remove debug output Alex svn path=/branches/KDE/4.4/kdelibs/; revision=1078701 --- modules/FindQt4.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 0c392676..081e996e 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -979,7 +979,7 @@ IF (QT4_QMAKE_FOUND) ENDIF(QT_USE_IMPORTED_TARGETS) -message(STATUS "QT_${basename}_LIBRARY: ${QT_${basename}_LIBRARY}") +#message(STATUS "QT_${basename}_LIBRARY: ${QT_${basename}_LIBRARY}") SET(QT_${basename}_FOUND 1) -- cgit v1.2.1 From ece346da13f43f4623fcbd9452999aeadf72d602 Mon Sep 17 00:00:00 2001 From: Dario Freddi Date: Sun, 24 Jan 2010 18:13:37 +0000 Subject: Backporting r1079648 svn path=/branches/KDE/4.4/kdelibs/; revision=1079649 --- modules/KDE4Macros.cmake | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index 5a7b701c..0c31aea7 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -1271,9 +1271,9 @@ endfunction(KDE4_INSTALL_AUTH_HELPER_FILES) # the install phase function(KDE4_INSTALL_AUTH_ACTIONS HELPER_ID ACTIONS_FILE) - if(APPLE) + if(KDE4_AUTH_BACKEND_NAME STREQUAL "APPLE") install(CODE "execute_process(COMMAND ${KDE4_KAUTH_POLICY_GEN_EXECUTABLE} ${ACTIONS_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})") - elseif(UNIX) + elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "POLKITQT" OR KDE4_AUTH_BACKEND_NAME STREQUAL "POLKITQT-1") set(_output ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.policy) get_filename_component(_input ${ACTIONS_FILE} ABSOLUTE) @@ -1285,13 +1285,7 @@ function(KDE4_INSTALL_AUTH_ACTIONS HELPER_ID ACTIONS_FILE) DEPENDS ${_KDE4_KAUTH_POLICY_GEN_EXECUTABLE_DEP}) add_custom_target("actions for ${HELPER_ID}" ALL DEPENDS ${_output}) - if (NOT POLKITQT_FOUND) - macro_optional_find_package(PolkitQt) - endif (NOT POLKITQT_FOUND) - - if (POLKITQT_FOUND) - install(FILES ${_output} DESTINATION ${POLKITQT_POLICY_FILES_INSTALL_DIR}) - endif (POLKITQT_FOUND) + install(FILES ${_output} DESTINATION ${KDE4_AUTH_POLICY_FILES_INSTALL_DIR}) endif() endfunction(KDE4_INSTALL_AUTH_ACTIONS) -- cgit v1.2.1