summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-10-27 10:59:50 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-10-27 10:59:57 (GMT)
commit2a1da463e9c57f3091c3868aed5d1187bbc29ba8 (patch)
treeea320cfc2f5a883e0785ab3a1de9616602faea11
parent9cadb345d9513b386295a75c96bcbece543798b2 (diff)
parentb8937a992b956b16a9181737f695ca118c5eea49 (diff)
downloadCMake-2a1da463e9c57f3091c3868aed5d1187bbc29ba8.zip
CMake-2a1da463e9c57f3091c3868aed5d1187bbc29ba8.tar.gz
CMake-2a1da463e9c57f3091c3868aed5d1187bbc29ba8.tar.bz2
Merge topic 'ninja-multi-per-config-sources'
b8937a992b Merge branch 'release' into ninja-multi-per-config-sources d13bd6ec3d Ninja Multi-Config: Don't try to calculate dependencies for "all" Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Brad King <brad.king@kitware.com> Merge-request: !5430
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx4
-rw-r--r--Tests/RunCMake/NinjaMultiConfig/PerConfigSources.cmake8
-rw-r--r--Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake4
3 files changed, 15 insertions, 1 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 9b27bc5..12b5033 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -1253,7 +1253,9 @@ void cmGlobalNinjaGenerator::AddTargetAlias(const std::string& alias,
std::string outputPath = this->NinjaOutputPath(alias);
std::string buildAlias = this->BuildAlias(outputPath, config);
cmNinjaDeps outputs;
- this->AppendTargetOutputs(target, outputs, config, DependOnTargetArtifact);
+ if (config != "all") {
+ this->AppendTargetOutputs(target, outputs, config, DependOnTargetArtifact);
+ }
// Mark the target's outputs as ambiguous to ensure that no other target
// uses the output as an alias.
for (std::string const& output : outputs) {
diff --git a/Tests/RunCMake/NinjaMultiConfig/PerConfigSources.cmake b/Tests/RunCMake/NinjaMultiConfig/PerConfigSources.cmake
new file mode 100644
index 0000000..7483130
--- /dev/null
+++ b/Tests/RunCMake/NinjaMultiConfig/PerConfigSources.cmake
@@ -0,0 +1,8 @@
+enable_language(C)
+file(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/main_$<CONFIG>.c" CONTENT
+[[int main(void)
+{
+ return 0;
+}
+]])
+add_executable(exe "${CMAKE_BINARY_DIR}/main_$<CONFIG>.c")
diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
index ec8804b..6699a09 100644
--- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
+++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake
@@ -246,6 +246,10 @@ unset(RunCMake_TEST_BINARY_DIR)
run_cmake(CustomCommandDepfile)
+set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all")
+run_cmake(PerConfigSources)
+unset(RunCMake_TEST_OPTIONS)
+
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PostfixAndLocation-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release;-DCMAKE_CROSS_CONFIGS=all")
run_cmake_configure(PostfixAndLocation)