diff options
author | Brad King <brad.king@kitware.com> | 2017-11-14 12:22:44 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2017-11-14 12:23:40 (GMT) |
commit | 6c231077256a7032c2833c45166290c50c39a11a (patch) | |
tree | c00b5025a72d094964673020cd39d2ef47ea5379 | |
parent | 8203895caa5d767e87760b22deea36fa2f5e99bf (diff) | |
parent | 3a993c49db687b8cd74fa70d680ebf10eae7708d (diff) | |
download | CMake-6c231077256a7032c2833c45166290c50c39a11a.zip CMake-6c231077256a7032c2833c45166290c50c39a11a.tar.gz CMake-6c231077256a7032c2833c45166290c50c39a11a.tar.bz2 |
Merge topic 'cmake-gui-qt-static-windows'
3a993c49 Tests: Add options to disable tests requiring Qt
27a73f16 cmake-gui: Add build option to use Qt5 windows plugin statically
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1476
-rw-r--r-- | Source/QtDialog/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Source/QtDialog/CMakeSetup.cxx | 4 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 16 |
3 files changed, 23 insertions, 5 deletions
diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 9e9df78..b38797b 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -33,6 +33,12 @@ if (Qt5Widgets_FOUND) PROPERTY COMPILE_DEFINITIONS USE_QXcbIntegrationPlugin) endif() + if(CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES) + list(APPEND CMake_QT_LIBRARIES ${CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES}) + set_property(SOURCE CMakeSetup.cxx + PROPERTY COMPILE_DEFINITIONS USE_QWindowsIntegrationPlugin) + endif() + # We need to install platform plugin and add qt.conf for Qt5 on Mac and Windows. # FIXME: This should be part of Qt5 CMake scripts, but unfortunatelly # Qt5 support is missing there. @@ -65,7 +71,7 @@ if (Qt5Widgets_FOUND) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/qt.conf" DESTINATION "${CMAKE_INSTALL_PREFIX}/Resources" ${COMPONENT}) - elseif(WIN32) + elseif(WIN32 AND NOT CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES) install_qt5_plugin("Qt5::QWindowsIntegrationPlugin" QT_PLUGINS) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf" "[Paths]\nPlugins = ../${_qt_plugin_dir}\n") diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index ca0b015..bfd43cf 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -44,6 +44,10 @@ static void cmAddPluginPath(); Q_IMPORT_PLUGIN(QXcbIntegrationPlugin); #endif +#if defined(USE_QWindowsIntegrationPlugin) +Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin); +#endif + int main(int argc, char** argv) { cmsys::Encoding::CommandLineArguments encoding_args = diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index b9558f1..4a7b8c9 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -409,11 +409,14 @@ if(BUILD_TESTING) list(APPEND TEST_BUILD_DIRS ${CMake_TEST_INSTALL_PREFIX}) - if(NOT QT4_FOUND) + if(NOT DEFINED CMake_TEST_Qt4) + set(CMake_TEST_Qt4 1) + endif() + if(CMake_TEST_Qt4 AND NOT QT4_FOUND) find_package(Qt4 QUIET) endif() - if(QT4_FOUND) + if(CMake_TEST_Qt4 AND QT4_FOUND) # test whether the Qt4 which has been found works, on some machines # which run nightly builds there were errors like "wrong file format" # for libQtCore.so. So first check it works, and only if it does add @@ -1255,8 +1258,13 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set(QtAutogen_BUILD_OPTIONS -DCMAKE_BUILD_TYPE=$<CONFIGURATION>) endif() - find_package(Qt5Widgets QUIET NO_MODULE) - if(Qt5Widgets_FOUND) + if(NOT DEFINED CMake_TEST_Qt5) + set(CMake_TEST_Qt5 1) + endif() + if(CMake_TEST_Qt5) + find_package(Qt5Widgets QUIET NO_MODULE) + endif() + if(CMake_TEST_Qt5 AND Qt5Widgets_FOUND) add_test(NAME Qt5Autogen COMMAND ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/QtAutogen" |