Merge topic 'test_find_modules'

8d83043 AllFindModules test: also check Qt3 modules if Qt4 is not found
e797e7f AllFindModules test: keep complete output
ec631d5 add a test that loops through most Find* modules
This commit is contained in:
David Cole 2012-01-25 11:15:47 -05:00 committed by CMake Topic Stage
commit 3c5489bd0f
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,39 @@
cmake_minimum_required (VERSION 2.8)
project(AllFindModules)
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" )
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}")
# 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")
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)

View File

@ -14,3 +14,5 @@ set_property(TEST CMakeOnly.LinkInterfaceLoop PROPERTY TIMEOUT 90)
add_CMakeOnly_test(CheckSymbolExists)
add_CMakeOnly_test(CheckCXXSymbolExists)
add_CMakeOnly_test(AllFindModules)