diff options
author | Alexander Neundorf <neundorf@kde.org> | 2008-08-16 23:11:53 (GMT) |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2008-08-16 23:11:53 (GMT) |
commit | db4bebe5c83dc38551ff4d9507cb20ac4a2f9f56 (patch) | |
tree | 6c4dea5577866db0913bb879e5f5cb2724f69d67 /Modules | |
parent | 814b3687251605ed5c2924b0705ebae2e70d2eb3 (diff) | |
download | CMake-db4bebe5c83dc38551ff4d9507cb20ac4a2f9f56.zip CMake-db4bebe5c83dc38551ff4d9507cb20ac4a2f9f56.tar.gz CMake-db4bebe5c83dc38551ff4d9507cb20ac4a2f9f56.tar.bz2 |
BUG: fix #7447, FindModulesExecuteAll test fails if both Qt3 and KDE4 can be
found in the system
Qt3 and Qt4 cannot be used together in one project.
Now Qt3/KDE3 and Qt4/KDE4 handle the case that this is done nevertheless
properly, i.e. they fail with FATAL_ERROR if it was REQUIRED and they fail
with just MESSAGE(STATUS ...) and RETURN() if it was not REQUIRED
BUG: make FindQt4 error out with FATAL_ERROR also if it was searched QUIET
Alex
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindKDE3.cmake | 12 | ||||
-rw-r--r-- | Modules/FindKDE4.cmake | 12 | ||||
-rw-r--r-- | Modules/FindQt3.cmake | 16 | ||||
-rw-r--r-- | Modules/FindQt4.cmake | 21 |
4 files changed, 55 insertions, 6 deletions
diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake index 3281f66..0cf8b24 100644 --- a/Modules/FindKDE3.cmake +++ b/Modules/FindKDE3.cmake @@ -67,6 +67,18 @@ IF(NOT UNIX AND KDE3_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Compiling KDE3 applications and libraries under Windows is not supported") ENDIF(NOT UNIX AND KDE3_FIND_REQUIRED) +# If Qt4 has already been found, fail. +IF(QT4_FOUND) + IF(KDE3_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "KDE3/Qt3 and Qt4 cannot be used together in one project.") + ELSE(KDE3_FIND_REQUIRED) + IF(NOT KDE3_FIND_QUIETLY) + MESSAGE( STATUS "KDE3/Qt3 and Qt4 cannot be used together in one project.") + ENDIF(NOT KDE3_FIND_QUIETLY) + RETURN() + ENDIF(KDE3_FIND_REQUIRED) +ENDIF(QT4_FOUND) + SET(QT_MT_REQUIRED TRUE) #SET(QT_MIN_VERSION "3.0.0") diff --git a/Modules/FindKDE4.cmake b/Modules/FindKDE4.cmake index 8992468..7eca7c6 100644 --- a/Modules/FindKDE4.cmake +++ b/Modules/FindKDE4.cmake @@ -9,6 +9,18 @@ # # Author: Alexander Neundorf <neundorf@kde.org> +# If Qt3 has already been found, fail. +IF(QT_QT_LIBRARY) + IF(KDE4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "KDE4/Qt4 and Qt3 cannot be used together in one project.") + ELSE(KDE4_FIND_REQUIRED) + IF(NOT KDE4_FIND_QUIETLY) + MESSAGE( STATUS "KDE4/Qt4 and Qt3 cannot be used together in one project.") + ENDIF(NOT KDE_FIND_QUIETLY) + RETURN() + ENDIF(KDE4_FIND_REQUIRED) +ENDIF(QT_QTCORE_LIBRARY) + FILE(TO_CMAKE_PATH "$ENV{KDEDIRS}" _KDEDIRS) # when cross compiling, searching kde4-config in order to run it later on diff --git a/Modules/FindQt3.cmake b/Modules/FindQt3.cmake index 2751b96..dcfaad3 100644 --- a/Modules/FindQt3.cmake +++ b/Modules/FindQt3.cmake @@ -20,6 +20,19 @@ # QT_WRAP_CPP, set true if QT_MOC_EXECUTABLE is found # QT_WRAP_UI set true if QT_UIC_EXECUTABLE is found +# If Qt4 has already been found, fail. +IF(QT4_FOUND) + IF(Qt3_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "Qt3 and Qt4 cannot be used together in one project.") + ELSE(Qt3_FIND_REQUIRED) + IF(NOT Qt3_FIND_QUIETLY) + MESSAGE( STATUS "Qt3 and Qt4 cannot be used together in one project.") + ENDIF(NOT Qt3_FIND_QUIETLY) + RETURN() + ENDIF(Qt3_FIND_REQUIRED) +ENDIF(QT4_FOUND) + + FILE(GLOB GLOB_PATHS_BIN /usr/lib/qt-3*/bin/) FIND_PATH(QT_INCLUDE_DIR qt.h "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/include/Qt" @@ -39,7 +52,7 @@ FIND_PATH(QT_INCLUDE_DIR qt.h # if qglobal.h is not in the qt_include_dir then set # QT_INCLUDE_DIR to NOTFOUND IF(NOT EXISTS ${QT_INCLUDE_DIR}/qglobal.h) - SET(QT_INCLUDE_DIR QT_INCLUDE_DIR-NOTFOUND CACHE PATH "path to qt3 include directory" FORCE) + SET(QT_INCLUDE_DIR QT_INCLUDE_DIR-NOTFOUND CACHE PATH "path to Qt3 include directory" FORCE) ENDIF(NOT EXISTS ${QT_INCLUDE_DIR}/qglobal.h) IF(QT_INCLUDE_DIR) @@ -51,7 +64,6 @@ IF(QT_INCLUDE_DIR) # Under windows the qt library (MSVC) has the format qt-mtXYZ where XYZ is the # version X.Y.Z, so we need to remove the dots from version STRING(REGEX REPLACE "\\." "" qt_version_str_lib "${qt_version_str}") -ELSE(QT_INCLUDE_DIR) ENDIF(QT_INCLUDE_DIR) FILE(GLOB GLOB_PATHS_LIB /usr/lib/qt-3*/lib/) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index da8594c..236751c 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -256,6 +256,19 @@ # (They make no sense in Qt4) # QT_QT_LIBRARY Qt-Library is now split +# If Qt3 has already been found, fail. +IF(QT_QT_LIBRARY) + IF(Qt4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "Qt3 and Qt4 cannot be used together in one project.") + ELSE(Qt4_FIND_REQUIRED) + IF(NOT Qt4_FIND_QUIETLY) + MESSAGE( STATUS "Qt3 and Qt4 cannot be used together in one project.") + ENDIF(NOT Qt4_FIND_QUIETLY) + RETURN() + ENDIF(Qt4_FIND_REQUIRED) +ENDIF(QT_QTCORE_LIBRARY) + + INCLUDE(CheckSymbolExists) INCLUDE(MacroAddFileDependencies) @@ -474,9 +487,9 @@ IF (QT4_QMAKE_FOUND) ENDIF( QT_QTCORE_INCLUDE_DIR AND NOT QT_INCLUDE_DIR) IF( NOT QT_INCLUDE_DIR) - IF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + IF(Qt4_FIND_REQUIRED) MESSAGE( FATAL_ERROR "Could NOT find QtGlobal header") - ENDIF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + ENDIF(Qt4_FIND_REQUIRED) ENDIF( NOT QT_INCLUDE_DIR) ############################################# @@ -771,9 +784,9 @@ IF (QT4_QMAKE_FOUND) ENDIF(EXISTS ${QT_LIBRARY_DIR}/libqtmain.a) ENDIF(QT_LIBRARY_DIR AND MSVC) - IF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + IF(Qt4_FIND_REQUIRED) MESSAGE( FATAL_ERROR "Could NOT find QtCore. Check ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log for more details.") - ENDIF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + ENDIF(Qt4_FIND_REQUIRED) ENDIF( NOT QT_QTCORE_LIBRARY_DEBUG AND NOT QT_QTCORE_LIBRARY_RELEASE ) # Set QT_QTASSISTANT_LIBRARY |