diff options
author | Brad King <brad.king@kitware.com> | 2021-03-26 13:23:13 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2021-03-26 13:23:19 (GMT) |
commit | 40b806ee967e9931365d6d1f3946126be22fb4be (patch) | |
tree | 3a41d80f7da539dc6380f89a3cab071839d0bed8 | |
parent | 61fd90b90c9dfec154aee7fb4d97574921e651d1 (diff) | |
parent | 3b864b2583d977898638336f5a096ff33955bd7a (diff) | |
download | CMake-40b806ee967e9931365d6d1f3946126be22fb4be.zip CMake-40b806ee967e9931365d6d1f3946126be22fb4be.tar.gz CMake-40b806ee967e9931365d6d1f3946126be22fb4be.tar.bz2 |
Merge topic 'ninja-multi-long-custom-command'
3b864b2583 Ninja Multi-Config: Include configs in long CC scripts
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5941
-rw-r--r-- | Source/cmLocalNinjaGenerator.cxx | 6 | ||||
-rw-r--r-- | Tests/RunCMake/NinjaMultiConfig/LongCommandLine.cmake | 16 | ||||
-rw-r--r-- | Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake | 5 |
3 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index 981c9cf..f2575c9 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -654,6 +654,12 @@ void cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( gg->WriteBuild(this->GetImplFileStream(fileConfig), build); } else { std::string customStep = cmSystemTools::GetFilenameName(ninjaOutputs[0]); + if (this->GlobalGenerator->IsMultiConfig()) { + customStep += '-'; + customStep += fileConfig; + customStep += '-'; + customStep += ccg.GetOutputConfig(); + } // Hash full path to make unique. customStep += '-'; cmCryptoHash hash(cmCryptoHash::AlgoSHA256); diff --git a/Tests/RunCMake/NinjaMultiConfig/LongCommandLine.cmake b/Tests/RunCMake/NinjaMultiConfig/LongCommandLine.cmake new file mode 100644 index 0000000..00aa896 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/LongCommandLine.cmake @@ -0,0 +1,16 @@ +enable_language(C) + +add_executable(generator main.c) + +string(REPEAT "." 5000 very_long) + +add_custom_command( + OUTPUT gen.txt + COMMAND generator "${very_long}" > gen.txt + ) + +add_custom_target( + custom + ALL + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/gen.txt" + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 21c2658..0d4db52 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -193,9 +193,14 @@ run_cmake_build(SimpleCrossConfigs all-relwithdebinfo-in-release-graph Release a set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PostBuild-build) set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all") run_cmake_configure(PostBuild) +unset(RunCMake_TEST_OPTIONS) run_cmake_build(PostBuild release Release Exe) run_cmake_build(PostBuild debug-in-release-graph Release Exe:Debug) +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/LongCommandLine-build) +run_cmake_configure(LongCommandLine) +run_cmake_build(LongCommandLine release Release custom) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Framework-build) set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all") run_cmake_configure(Framework) |