diff options
-rw-r--r-- | modules-tests/Flex/CMakeLists.txt | 8 | ||||
-rw-r--r-- | modules-tests/QCA2/CMakeLists.txt | 5 | ||||
-rw-r--r-- | modules-tests/RunAllModuleTests.cmake | 20 | ||||
-rw-r--r-- | modules-tests/TestFindPackage.cmake | 35 | ||||
-rw-r--r-- | modules-tests/Xine/CMakeLists.txt | 11 |
5 files changed, 64 insertions, 15 deletions
diff --git a/modules-tests/Flex/CMakeLists.txt b/modules-tests/Flex/CMakeLists.txt index 0cc21104..38b66566 100644 --- a/modules-tests/Flex/CMakeLists.txt +++ b/modules-tests/Flex/CMakeLists.txt @@ -1,9 +1,5 @@ -cmake_minimum_required(VERSION 2.6.2) +include("${CMAKE_CURRENT_SOURCE_DIR}/../TestFindPackage.cmake") set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../modules" ) -find_package(Flex) - -message(STATUS "FLEX_FOUND: \"${FLEX_FOUND}\"") -message(STATUS "FLEX_VERSION: \"${FLEX_VERSION}\"") -message(STATUS "FLEX_EXECUTABLE: \"${FLEX_EXECUTABLE}\"") +test_find_package(Flex FLEX VERSION EXECUTABLE) diff --git a/modules-tests/QCA2/CMakeLists.txt b/modules-tests/QCA2/CMakeLists.txt new file mode 100644 index 00000000..46f617ed --- /dev/null +++ b/modules-tests/QCA2/CMakeLists.txt @@ -0,0 +1,5 @@ +include("${CMAKE_CURRENT_SOURCE_DIR}/../TestFindPackage.cmake") + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../modules" ) + +test_find_package(QCA2 QCA2 INCLUDE_DIR LIBRARIES DEFINITIONS) diff --git a/modules-tests/RunAllModuleTests.cmake b/modules-tests/RunAllModuleTests.cmake new file mode 100644 index 00000000..537072c1 --- /dev/null +++ b/modules-tests/RunAllModuleTests.cmake @@ -0,0 +1,20 @@ +# run this script via "cmake -P RunAllModuletests.cmake" to +# execute all module tests in one go. +# To see only the results and not the other cmake output, +# you can grep for ">>". + +get_filename_component(currentDir "${CMAKE_CURRENT_LIST_FILE}" PATH) + +function(execute_one_test name) + set(workingDir "${currentDir}/${name}/build") + file(REMOVE_RECURSE "${workingDir}") + file(MAKE_DIRECTORY "${workingDir}") + execute_process(COMMAND ${CMAKE_COMMAND} "${currentDir}/${name}" + WORKING_DIRECTORY "${workingDir}") +endfunction(execute_one_test) + +execute_one_test(Xine) +execute_one_test(Flex) +execute_one_test(QCA2) + + diff --git a/modules-tests/TestFindPackage.cmake b/modules-tests/TestFindPackage.cmake new file mode 100644 index 00000000..1a1bf8fe --- /dev/null +++ b/modules-tests/TestFindPackage.cmake @@ -0,0 +1,35 @@ +# This module provides the macro TEST_FIND_PACKAGE() +# +# TEST_FIND_PACKAGE(package prefix var1 .. varN ) +# It can be used to test a CMake Find-module. +# It executes FIND_PACKAGE(<package>) and then prints some results. +# <package> is the same as for FIND_PACKAGE() and +# prefix should be the prefix which is used in that module for +# all variables. +# It checks <prefix>_FOUND to decide whether the module was successful or not. +# +# Example: +# test_find_package(Xine XINE VERSION INCLUDE_DIR LIBRARY) +# +# This will check XINE_FOUND and then print the variables XINE_VERSION, XINE_INCLUDE_DIR and XINE_LIBRARY. + +cmake_minimum_required(VERSION 2.6.2) +cmake_policy(SET CMP0000 OLD) + +macro(TEST_FIND_PACKAGE package prefix ) + message(STATUS ">> ***** Testing Find${package}.cmake *****") + find_package(${package}) + message(STATUS ">> ***** Results from Find${package}.cmake *****") + + if ( ${prefix}_FOUND) + message(STATUS ">> Find${package}.cmake: ${package} has been found") + else ( ${prefix}_FOUND) + message(STATUS ">> Find${package}.cmake: ${package} has NOT been found !") + endif ( ${prefix}_FOUND) + + message(STATUS "${prefix}_FOUND: \"${${prefix}_FOUND}\"") + foreach(var ${ARGN}) + message(STATUS ">> ${prefix}_${var}: \"${${prefix}_${var}}\"") + endforeach(var) + message(STATUS ">> ***** Done *****") +endmacro(TEST_FIND_PACKAGE package) diff --git a/modules-tests/Xine/CMakeLists.txt b/modules-tests/Xine/CMakeLists.txt index 4fcbbd58..8c2ac6e6 100644 --- a/modules-tests/Xine/CMakeLists.txt +++ b/modules-tests/Xine/CMakeLists.txt @@ -1,12 +1,5 @@ -cmake_minimum_required(VERSION 2.6.2) +include("${CMAKE_CURRENT_SOURCE_DIR}/../TestFindPackage.cmake") set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../modules" ) -find_package(Xine) - -message(STATUS "XINE_FOUND: \"${XINE_FOUND}\"") -message(STATUS "XINE_VERSION: \"${XINE_VERSION}\"") -message(STATUS "XINE_BUGFIX_VERSION: \"${XINE_BUGFIX_VERSION}\"") -message(STATUS "XINE_INCLUDE_DIR: \"${XINE_INCLUDE_DIR}\"") -message(STATUS "XINE_LIBRARY: \"${XINE_LIBRARY}\"") -message(STATUS "XINE_XCB_FOUND: \"${XINE_XCB_FOUND}\"") +test_find_package(Xine XINE VERSION BUGFIX_VERSION INCLUDE_DIR LIBRARY XCB_FOUND) |