diff options
5 files changed, 17 insertions, 2 deletions
diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index 3995624..a18ca20 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -35,6 +35,11 @@ cmNinjaUtilityTargetGenerator::~cmNinjaUtilityTargetGenerator() = default; void cmNinjaUtilityTargetGenerator::Generate(const std::string& config) { + if (!this->GetGeneratorTarget()->Target->IsPerConfig()) { + this->WriteUtilBuildStatements(config, config); + return; + } + for (auto const& fileConfig : this->GetConfigNames()) { if (!this->GetGlobalGenerator() ->GetCrossConfigs(fileConfig) @@ -122,8 +127,6 @@ void cmNinjaUtilityTargetGenerator::WriteUtilBuildStatements( std::copy(util_outputs.begin(), util_outputs.end(), std::back_inserter(gg->GetByproductsForCleanTarget())); } - // TODO: Does this need an output config? - // Does this need to go in impl-<config>.ninja? lg->AppendTargetDepends(genTarget, deps, config, fileConfig, DependOnTargetArtifact); diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 480d628..21c2658 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -85,6 +85,9 @@ set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=RelWithDebInfo\\;Debug\\; run_cmake_configure(Simple) unset(RunCMake_TEST_OPTIONS) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) +run_ninja(Simple targets-default build.ninja -t targets) +run_ninja(Simple targets-debug build-Debug.ninja -t targets) +run_ninja(Simple targets-release build-Debug.ninja -t targets) run_cmake_build(Simple debug-target Debug simpleexe) run_ninja(Simple debug-target build-Debug.ninja simplestatic) get_filename_component(simpleshared_Release "${TARGET_FILE_simpleshared_Release}" NAME) diff --git a/Tests/RunCMake/NinjaMultiConfig/Simple-targets-debug-ninja-stdout.txt b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-debug-ninja-stdout.txt new file mode 100644 index 0000000..f72516f --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-debug-ninja-stdout.txt @@ -0,0 +1,3 @@ +(rebuild_cache: phony.* +edit_cache: phony|edit_cache: phony.* +rebuild_cache: phony) diff --git a/Tests/RunCMake/NinjaMultiConfig/Simple-targets-default-ninja-stdout.txt b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-default-ninja-stdout.txt new file mode 100644 index 0000000..f72516f --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-default-ninja-stdout.txt @@ -0,0 +1,3 @@ +(rebuild_cache: phony.* +edit_cache: phony|edit_cache: phony.* +rebuild_cache: phony) diff --git a/Tests/RunCMake/NinjaMultiConfig/Simple-targets-release-ninja-stdout.txt b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-release-ninja-stdout.txt new file mode 100644 index 0000000..f72516f --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/Simple-targets-release-ninja-stdout.txt @@ -0,0 +1,3 @@ +(rebuild_cache: phony.* +edit_cache: phony|edit_cache: phony.* +rebuild_cache: phony) |