RunCMake: Allow specifying the source dir and file to test.

This will allow decoupling the name of the test from the name and
location of the source file under test, which means one source
file can be used for multiple tests.

Rename the PARENT_SCOPE test in RunCMake.set to not use a keyword
of the if() command as a file name.  As the filename is now used
with an if condition, this causes a conflict.
This commit is contained in:
Stephen Kelly 2014-04-06 23:53:52 +02:00
parent 5376151aa1
commit c869984ea0
4 changed files with 8 additions and 3 deletions

View File

@ -25,7 +25,9 @@ function(run_cmake test)
unset(expect_std${o}) unset(expect_std${o})
endif() endif()
endforeach() endforeach()
set(RunCMake_TEST_SOURCE_DIR "${top_src}") if (NOT RunCMake_TEST_SOURCE_DIR)
set(RunCMake_TEST_SOURCE_DIR "${top_src}")
endif()
if(NOT RunCMake_TEST_BINARY_DIR) if(NOT RunCMake_TEST_BINARY_DIR)
set(RunCMake_TEST_BINARY_DIR "${top_bin}/${test}-build") set(RunCMake_TEST_BINARY_DIR "${top_bin}/${test}-build")
endif() endif()
@ -36,6 +38,9 @@ function(run_cmake test)
if(NOT DEFINED RunCMake_TEST_OPTIONS) if(NOT DEFINED RunCMake_TEST_OPTIONS)
set(RunCMake_TEST_OPTIONS "") set(RunCMake_TEST_OPTIONS "")
endif() endif()
if (NOT RunCMake_TEST_FILE)
set(RunCMake_TEST_FILE "${test}")
endif()
if(APPLE) if(APPLE)
list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW) list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
endif() endif()
@ -52,7 +57,7 @@ function(run_cmake test)
COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}" COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}"
-G "${RunCMake_GENERATOR}" -G "${RunCMake_GENERATOR}"
-T "${RunCMake_GENERATOR_TOOLSET}" -T "${RunCMake_GENERATOR_TOOLSET}"
-DRunCMake_TEST=${test} -DRunCMake_TEST=${RunCMake_TEST_FILE}
--no-warn-unused-cli --no-warn-unused-cli
${RunCMake_TEST_OPTIONS} ${RunCMake_TEST_OPTIONS}
WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}" WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"

View File

@ -1,3 +1,3 @@
include(RunCMake) include(RunCMake)
run_cmake(PARENT_SCOPE) run_cmake(ParentScope)