Explorar el Código

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.
Stephen Kelly hace 11 años
padre
commit
c869984ea0

+ 7 - 2
Tests/RunCMake/RunCMake.cmake

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

+ 0 - 0
Tests/RunCMake/set/PARENT_SCOPE-result.txt → Tests/RunCMake/set/ParentScope-result.txt


+ 0 - 0
Tests/RunCMake/set/PARENT_SCOPE.cmake → Tests/RunCMake/set/ParentScope.cmake


+ 1 - 1
Tests/RunCMake/set/RunCMakeTest.cmake

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