From ec631d5043faa1c307e6c6a29108664a47066e5d Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Mon, 16 Jan 2012 23:37:13 +0100 Subject: add a test that loops through most Find* modules This allows easy spotting of modules that output crappy messages and the like. --- Tests/CMakeOnly/AllFindModules/CMakeLists.txt | 25 +++++++++++++++++++++++++ Tests/CMakeOnly/CMakeLists.txt | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 Tests/CMakeOnly/AllFindModules/CMakeLists.txt diff --git a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt new file mode 100644 index 0000000..e825a68 --- /dev/null +++ b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required (VERSION 2.8) +project(AllFindModules) + +if (POLICY CMP0017) + cmake_policy(SET CMP0017 NEW) +endif () + +file(GLOB FIND_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../Modules/Find*.cmake" ) + +foreach(FIND_MODULE ${FIND_MODULES}) + string(REGEX REPLACE ".*/Find(.*)\\.cmake$" "\\1" MODULE_NAME "${FIND_MODULE}") + + # It is only possible to use either Qt3 or Qt4 in one project. + # Since FindQt will complain if both are found we explicitely + # filter out this and FindQt3. FindKDE3 also depends on Qt3 and + # is therefore also blocked + + if (NOT MODULE_NAME STREQUAL "Qt" AND + NOT MODULE_NAME STREQUAL "Qt3" AND + NOT MODULE_NAME STREQUAL "KDE3") + message(STATUS " Checking Find${MODULE_NAME}") + find_package(${MODULE_NAME}) + endif () + +endforeach(FIND_MODULE) diff --git a/Tests/CMakeOnly/CMakeLists.txt b/Tests/CMakeOnly/CMakeLists.txt index f6aa9b5..20e6a3a 100644 --- a/Tests/CMakeOnly/CMakeLists.txt +++ b/Tests/CMakeOnly/CMakeLists.txt @@ -14,3 +14,5 @@ set_property(TEST CMakeOnly.LinkInterfaceLoop PROPERTY TIMEOUT 90) add_CMakeOnly_test(CheckSymbolExists) add_CMakeOnly_test(CheckCXXSymbolExists) + +add_CMakeOnly_test(AllFindModules) -- cgit v0.12 From e797e7fb412ccfb61eada7f2925e505082da449a Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Tue, 17 Jan 2012 19:08:40 +0100 Subject: AllFindModules test: keep complete output --- Tests/CMakeOnly/AllFindModules/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt index e825a68..06b4736 100644 --- a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt +++ b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt @@ -5,6 +5,9 @@ if (POLICY CMP0017) cmake_policy(SET CMP0017 NEW) endif () +# Avoid ctest truncation of output +message(STATUS "CTEST_FULL_OUTPUT") + file(GLOB FIND_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../Modules/Find*.cmake" ) foreach(FIND_MODULE ${FIND_MODULES}) -- cgit v0.12 From 8d830436a42ec06555334b5c5ec73b41328d5f06 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Wed, 18 Jan 2012 18:23:21 +0100 Subject: AllFindModules test: also check Qt3 modules if Qt4 is not found --- Tests/CMakeOnly/AllFindModules/CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt index 06b4736..8a38f06 100644 --- a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt +++ b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt @@ -10,6 +10,11 @@ message(STATUS "CTEST_FULL_OUTPUT") file(GLOB FIND_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../Modules/Find*.cmake" ) +macro(do_find MODULE_NAME) + message(STATUS " Checking Find${MODULE_NAME}") + find_package(${MODULE_NAME}) +endmacro(do_find) + foreach(FIND_MODULE ${FIND_MODULES}) string(REGEX REPLACE ".*/Find(.*)\\.cmake$" "\\1" MODULE_NAME "${FIND_MODULE}") @@ -21,8 +26,14 @@ foreach(FIND_MODULE ${FIND_MODULES}) if (NOT MODULE_NAME STREQUAL "Qt" AND NOT MODULE_NAME STREQUAL "Qt3" AND NOT MODULE_NAME STREQUAL "KDE3") - message(STATUS " Checking Find${MODULE_NAME}") - find_package(${MODULE_NAME}) + do_find(${MODULE_NAME}) endif () endforeach(FIND_MODULE) + +# Qt4 is not present, so we can check Qt3 +if(NOT QT4_FOUND) + foreach(FIND_MODULE "Qt3" "Qt" "KDE3") + do_find(${FIND_MODULE}) + endforeach(FIND_MODULE) +endif(NOT QT4_FOUND) -- cgit v0.12