From f8e2a74712c01f205c794102dd0151feace7a5df Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Thu, 22 Apr 2021 15:51:53 -0400 Subject: Ninja Multi-Config: Correctly generate POST_BUILD custom targets Fixes: #22096 --- Source/cmNinjaUtilityTargetGenerator.cxx | 2 +- ...tomCommandOutputGenex-target_post_build-debug-ninja-stdout.txt | 4 ++++ Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex.cmake | 8 ++++++++ Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex-target_post_build-debug-ninja-stdout.txt diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index a18ca20..92c5b52 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -173,7 +173,7 @@ void cmNinjaUtilityTargetGenerator::WriteUtilBuildStatements( std::string ccConfig; if (genTarget->Target->IsPerConfig() && genTarget->GetType() != cmStateEnums::GLOBAL_TARGET) { - ccConfig = fileConfig; + ccConfig = config; } if (config == fileConfig || gg->GetPerConfigUtilityTargets().count(genTarget->GetName())) { diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex-target_post_build-debug-ninja-stdout.txt b/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex-target_post_build-debug-ninja-stdout.txt new file mode 100644 index 0000000..6bf0a49 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex-target_post_build-debug-ninja-stdout.txt @@ -0,0 +1,4 @@ +^\[1/2\] target_post_build +target main build +\[2/2\] Running utility command for target_post_build +target post build$ diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex.cmake index e49cc32..bb68a50 100644 --- a/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandOutputGenex.cmake @@ -189,3 +189,11 @@ add_custom_target(target_no_cross_byproduct COMMAND echo $ target_no_cross_byproduct.txt WORKING_DIRECTORY $ ) + +add_custom_target(target_post_build + COMMENT target_post_build + COMMAND ${CMAKE_COMMAND} -E echo "target main build" + ) +add_custom_command(TARGET target_post_build POST_BUILD + COMMAND ${CMAKE_COMMAND} -E echo "target post build" + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 23b4aea..aa42739 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -364,6 +364,8 @@ run_ninja(CustomCommandOutputGenex target_no_cross_byproduct-debug build-Debug.n run_ninja(CustomCommandOutputGenex clean-debug-graph build-Debug.ninja -t clean) run_ninja(CustomCommandOutputGenex target_no_cross_byproduct-debug-in-release-graph build-Release.ninja target_no_cross_byproduct:Debug) run_ninja(CustomCommandOutputGenex clean-release-graph build-Release.ninja -t clean) +# target_post_build +run_ninja(CustomCommandOutputGenex target_post_build-debug build-Debug.ninja target_post_build) unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_BINARY_DIR) -- cgit v0.12