aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2010-01-13 21:21:19 +0000
committerAlexander Neundorf <neundorf@kde.org>2010-01-13 21:21:19 +0000
commit52ff67d907433f7d6f36c2c850dd75baabe1204a (patch)
treede5806667e9d4b12453ac1ad510131d1baf1d9d2
parentf04076a5ddcf0a551b8a45e0e11c9e0ee353e82d (diff)
downloadextra-cmake-modules-52ff67d907433f7d6f36c2c850dd75baabe1204a.tar.gz
extra-cmake-modules-52ff67d907433f7d6f36c2c850dd75baabe1204a.tar.bz2
-fix the temporary source incompatiblity introduced in rev 1070849
(when a project first did a find_package(Qt4) with a FindQt4.cmake not from kdelibs, followed by a find_package(KDE4), the imported targets for the Qt library used in the exported targets file of kdelibs and created in kdelibs FindQt4.cmake did not exist, so it did not link) Now when doing a find_package(KDE4) always the FindQt4.cmake in the same directory is executed, and only does nothing if also the imported Qt targets already exist. This should fix rekonq, quassel, amarok, etc. Please let me know if it still does not work. Please also let me know if it works now. Thanks Alex CCMAIL: sputnick@quassel-irc.org CCMAIL: bbeschow@cs.tu-berlin.de svn path=/trunk/KDE/kdelibs/; revision=1074319
-rw-r--r--modules/FindKDE4Internal.cmake16
-rw-r--r--modules/FindQt4.cmake48
2 files changed, 38 insertions, 26 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 941e2e40..f763633d 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)
@@ -894,38 +894,40 @@ IF (QT4_QMAKE_FOUND)
MACRO (_QT4_ADJUST_LIB_VARS basename)
# message(STATUS "Adjusting ${basename}, release: -${QT_${basename}_LIBRARY_RELEASE}- debug: -${QT_${basename}_LIBRARY_DEBUG}-")
IF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG)
- ADD_LIBRARY(Qt4__${basename} SHARED IMPORTED )
+ 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(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 Qt4__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
- SET_PROPERTY(TARGET Qt4__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_RELEASE "${QT_${basename}_LIBRARY_RELEASE}" )
+ 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}" )
# message(STATUS "Setting IMPORTED_LOCATION_RELEASE to -${QT_${basename}_LIBRARY_RELEASE}-")
- ENDIF (QT_${basename}_LIBRARY_RELEASE)
+ ENDIF (QT_${basename}_LIBRARY_RELEASE)
- IF (QT_${basename}_LIBRARY_DEBUG)
- SET_PROPERTY(TARGET Qt4__${basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
- SET_PROPERTY(TARGET Qt4__${basename} PROPERTY IMPORTED_${_QT4_LIBRARY_PROPERTY_NAME}_DEBUG "${QT_${basename}_LIBRARY_DEBUG}" )
+ 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}" )
# message(STATUS "Setting IMPORTED_LOCATION_DEBUG to -${QT_${basename}_LIBRARY_DEBUG}-")
- SET_PROPERTY(TARGET Qt4__${basename} PROPERTY MAP_IMPORTED_CONFIG_PROFILE DEBUG)
- SET_PROPERTY(TARGET Qt4__${basename} PROPERTY MAP_IMPORTED_CONFIG_DEBUGFULL DEBUG)
- ENDIF (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 Qt4__${basename} )
- SET(QT_${basename}_LIBRARIES Qt4__${basename} )
+ 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)
+ 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)