summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2020-02-07 19:18:54 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2020-02-07 19:18:54 (GMT)
commit67102d3252f744987762ae19c4bfffeb11cdd46e (patch)
tree90714a5acbd052779b36cf56940ebf2032068bbf /Tests
parentad17c37d345cd143a131e4b5f26196e0e749ec0e (diff)
downloadCMake-67102d3252f744987762ae19c4bfffeb11cdd46e.zip
CMake-67102d3252f744987762ae19c4bfffeb11cdd46e.tar.gz
CMake-67102d3252f744987762ae19c4bfffeb11cdd46e.tar.bz2
Ninja Multi-Config: Add support for DEPFILE option in add_custom_command()
And give other generators a path forward to add support in the future.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake5
-rw-r--r--Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake9
-rw-r--r--Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake4
3 files changed, 18 insertions, 0 deletions
diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake
new file mode 100644
index 0000000..c595b10
--- /dev/null
+++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile-check.cmake
@@ -0,0 +1,5 @@
+set(log "${RunCMake_BINARY_DIR}/CustomCommandDepfile-build/CMakeFiles/impl-Debug.ninja")
+file(READ "${log}" build_file)
+if(NOT "${build_file}" MATCHES "depfile = test\\.d")
+ set(RunCMake_TEST_FAILED "Log file:\n ${log}\ndoes not have expected line: depfile = test.d")
+endif()
diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake
new file mode 100644
index 0000000..1a42670
--- /dev/null
+++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandDepfile.cmake
@@ -0,0 +1,9 @@
+add_custom_command(
+ OUTPUT main.copy.c
+ COMMAND "${CMAKE_COMMAND}" -E copy
+ "${CMAKE_CURRENT_SOURCE_DIR}/main.c"
+ main.copy.c
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ DEPFILE "test.d"
+ )
+add_custom_target(copy ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/main.copy.c")
diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
index 827e560..3626a29 100644
--- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
+++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
@@ -224,6 +224,10 @@ run_ninja(CustomCommandsAndTargets release-postbuild build-Release.ninja SubdirP
run_cmake_build(CustomCommandsAndTargets debug-targetpostbuild Debug TopTargetPostBuild)
run_ninja(CustomCommandsAndTargets release-targetpostbuild build-Release.ninja SubdirTargetPostBuild)
+unset(RunCMake_TEST_BINARY_DIR)
+
+run_cmake(CustomCommandDepfile)
+
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PostfixAndLocation-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release;-DCMAKE_NMC_CROSS_CONFIGS=all")
run_cmake_configure(PostfixAndLocation)