Commit 8ef9983d authored by Alexander Neundorf's avatar Alexander Neundorf
Browse files

ENH: add test which executes all FindXXX.cmake modules

Alex
parent d1c1d802
...@@ -40,6 +40,7 @@ IF(BUILD_TESTING) ...@@ -40,6 +40,7 @@ IF(BUILD_TESTING)
# add a bunch of standard build-and-test style tests # add a bunch of standard build-and-test style tests
ADD_TEST_MACRO(CommandLineTest CommandLineTest) ADD_TEST_MACRO(CommandLineTest CommandLineTest)
ADD_TEST_MACRO(FindPackageTest FindPackageTest) ADD_TEST_MACRO(FindPackageTest FindPackageTest)
ADD_TEST_MACRO(FindModulesExecuteAll FindModulesExecuteAll)
ADD_TEST_MACRO(StringFileTest StringFileTest) ADD_TEST_MACRO(StringFileTest StringFileTest)
ADD_TEST_MACRO(TryCompile TryCompile) ADD_TEST_MACRO(TryCompile TryCompile)
ADD_TEST_MACRO(TarTest TarTest) ADD_TEST_MACRO(TarTest TarTest)
......
# This file includes all FindXXX.cmake modules, so they are all executed.
# As it is it doesn't test a lot.
# It makes sure that the modules don't contain basic syntax errors.
# It also makes sure that modules don't fail with an error if something
# wasn't found but REQUIRED was not given.
#
# I guess more things could be added, like checking whether variables are
# defined after running the modules (e.g. FOO_FOUND etc.).
file(GLOB all_modules "${CMAKE_CURRENT_SOURCE_DIR}/../../Modules/Find*cmake")
foreach(module ${all_modules})
message(STATUS "module: ${module}")
include("${module}")
# get the "basename" of the package, so the existence of variables like
# FOO_FOUND could be tested later on, Alex
string(REGEX REPLACE ".+Find([^\\.]+)\\.cmake" "\\1" packageName "${module}")
string(TOUPPER "${packageName}" packageNameUpper)
# disabled for now, since too many modules break:
# if(NOT DEFINED ${packageNameUpper}_FOUND)
# message(SEND_ERROR "${packageNameUpper}_FOUND not defined !")
# endif(NOT DEFINED ${packageNameUpper}_FOUND)
endforeach(module ${all_modules})
add_executable(FindModulesExecuteAll main.c)
int main()
{
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment