Browse Source

Ninja: Add test for `$subdir/all` targets

Brad King 9 years ago
parent
commit
e9bf8ec849

+ 16 - 0
Tests/RunCMake/Ninja/RunCMakeTest.cmake

@@ -16,3 +16,19 @@ run_CMP0058(WARN-no)
 run_CMP0058(WARN-by)
 run_CMP0058(NEW-no)
 run_CMP0058(NEW-by)
+
+function(run_SubDir)
+  # Use a single build tree for a few tests without cleaning.
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SubDir-build)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+  file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+  run_cmake(SubDir)
+  if(WIN32)
+    set(SubDir_all [[SubDir\all]])
+  else()
+    set(SubDir_all [[SubDir/all]])
+  endif()
+  run_cmake_command(SubDir-build ${CMAKE_COMMAND} --build . --target ${SubDir_all})
+endfunction()
+run_SubDir()

+ 1 - 0
Tests/RunCMake/Ninja/SubDir-build-stdout.txt

@@ -0,0 +1 @@
+Building InAll

+ 2 - 0
Tests/RunCMake/Ninja/SubDir.cmake

@@ -0,0 +1,2 @@
+add_subdirectory(SubDir)
+add_custom_target(TopFail ALL COMMAND does_not_exist)

+ 2 - 0
Tests/RunCMake/Ninja/SubDir/CMakeLists.txt

@@ -0,0 +1,2 @@
+add_custom_target(SubFail COMMAND does_not_exist)
+add_custom_target(InAll ALL COMMAND ${CMAKE_COMMAND} -E echo "Building InAll")