diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-03-16 18:25:59 +0100 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-03-18 09:31:33 -0400 |
commit | 4aa10cd6d67c051b3659cd33aee17391e4a8318b (patch) | |
tree | 3795ec25db9606ad2d7f057b1224ddd30ed4f1fa | |
parent | 03b0ceebe5f8ca27b54a2d09ad38fb89c298f800 (diff) | |
download | cmake-4aa10cd6d67c051b3659cd33aee17391e4a8318b.tar.gz |
FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore
With a similar commit in Qt 5, this will error at CMake time if
an attempt is made to use
target_link_libraries(foo Qt4::QtCore Qt5::Core)
-rw-r--r-- | Modules/FindQt4.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 6 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/IncompatibleQt-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/IncompatibleQt-stderr.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/RunCMakeTest.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/IncompatibleQt/main.cpp | 8 |
8 files changed, 36 insertions, 0 deletions
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 1dd2782ed0..4317ce26ec 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -1022,6 +1022,12 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION) "${QT_MKSPECS_DIR}/default" ${QT_INCLUDE_DIR} ) + set_property(TARGET Qt4::QtCore PROPERTY + INTERFACE_QT_MAJOR_VERSION 4 + ) + set_property(TARGET Qt4::QtCore APPEND PROPERTY + COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION + ) foreach(QT_MODULE ${QT_MODULES}) _QT4_ADJUST_LIB_VARS(${QT_MODULE}) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 4b4bd31bcc..7f9b9fdafb 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -75,6 +75,12 @@ add_RunCMake_test(include_directories) add_RunCMake_test(list) add_RunCMake_test(CMP0004) +find_package(Qt4 QUIET) +find_package(Qt5Core QUIET) +if (QT4_FOUND AND Qt5Core_FOUND AND Qt5Core_VERSION VERSION_GREATER 5.0.2) + add_RunCMake_test(IncompatibleQt) +endif() + if("${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio [^6]") add_RunCMake_test(include_external_msproject) add_RunCMake_test(SolutionGlobalSections) diff --git a/Tests/RunCMake/IncompatibleQt/CMakeLists.txt b/Tests/RunCMake/IncompatibleQt/CMakeLists.txt new file mode 100644 index 0000000000..68dd8d6a1c --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8) +project(${RunCMake_TEST} CXX) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt-result.txt b/Tests/RunCMake/IncompatibleQt/IncompatibleQt-result.txt new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt-stderr.txt b/Tests/RunCMake/IncompatibleQt/IncompatibleQt-stderr.txt new file mode 100644 index 0000000000..4eaaa95f13 --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt-stderr.txt @@ -0,0 +1,3 @@ +CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt5::Core" does +not agree with the value of QT_MAJOR_VERSION already determined +for "mainexe". diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake new file mode 100644 index 0000000000..4fccdc418f --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake @@ -0,0 +1,6 @@ + +find_package(Qt4 REQUIRED) +find_package(Qt5Core REQUIRED) + +add_executable(mainexe main.cpp) +target_link_libraries(mainexe Qt4::QtCore Qt5::Core) diff --git a/Tests/RunCMake/IncompatibleQt/RunCMakeTest.cmake b/Tests/RunCMake/IncompatibleQt/RunCMakeTest.cmake new file mode 100644 index 0000000000..322c291b74 --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/RunCMakeTest.cmake @@ -0,0 +1,3 @@ +include(RunCMake) + +run_cmake(IncompatibleQt) diff --git a/Tests/RunCMake/IncompatibleQt/main.cpp b/Tests/RunCMake/IncompatibleQt/main.cpp new file mode 100644 index 0000000000..140a7c1a6d --- /dev/null +++ b/Tests/RunCMake/IncompatibleQt/main.cpp @@ -0,0 +1,8 @@ + +#include <QCoreApplication> + +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + return app.exec(); +} |