diff options
author | Brad King <brad.king@kitware.com> | 2023-03-27 22:16:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-03-27 22:20:23 (GMT) |
commit | a67cd9c39cc82fa934cc047c719fae8995ff215c (patch) | |
tree | adcb3708a5d01438f1dd3470d07cbd367e4a9980 /Source | |
parent | 381327c944dc60ccc418e110c5afee85462cfea4 (diff) | |
download | CMake-a67cd9c39cc82fa934cc047c719fae8995ff215c.zip CMake-a67cd9c39cc82fa934cc047c719fae8995ff215c.tar.gz CMake-a67cd9c39cc82fa934cc047c719fae8995ff215c.tar.bz2 |
Ninja: Restore slash style for MinGW tools when extra languages are enabled
Since commit f3ca199c9b (cmGlobalNinjaGenerator: Factor out GNU-like
command-line detection on Windows, 2023-03-18, v3.26.1~2^2~6), we
accidentally "unrecognize" MinGW tools on Windows if a language other
than C or CXX is enabled. This causes the wrong slash style to be
generated in paths in `build.ninja`.
Fixes: #24642
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalNinjaGenerator.cxx | 10 | ||||
-rw-r--r-- | Source/cmGlobalNinjaGenerator.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 914d1c7..f8e97db 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -956,8 +956,9 @@ void cmGlobalNinjaGenerator::EnableLanguage( mf->GetSafeDefinition(cmStrCat("CMAKE_", l, "_SIMULATE_ID")); std::string const& compilerFrontendVariant = mf->GetSafeDefinition( cmStrCat("CMAKE_", l, "_COMPILER_FRONTEND_VARIANT")); - this->SetUsingGCCOnWindows( - DetectGCCOnWindows(compilerId, simulateId, compilerFrontendVariant)); + if (DetectGCCOnWindows(compilerId, simulateId, compilerFrontendVariant)) { + this->MarkAsGCCOnWindows(); + } #endif } } @@ -2843,8 +2844,9 @@ int cmcmd_cmake_ninja_dyndep(std::vector<std::string>::const_iterator argBeg, cmGlobalNinjaGenerator& gg = cm::static_reference_cast<cmGlobalNinjaGenerator>(ggd); # ifdef _WIN32 - gg.SetUsingGCCOnWindows( - DetectGCCOnWindows(compilerId, simulateId, compilerFrontendVariant)); + if (DetectGCCOnWindows(compilerId, simulateId, compilerFrontendVariant)) { + gg.MarkAsGCCOnWindows(); + } # endif return gg.WriteDyndepFile(dir_top_src, dir_top_bld, dir_cur_src, dir_cur_bld, arg_dd, arg_ddis, module_dir, linked_target_dirs, diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 68b26cc..7f01b09 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -169,7 +169,7 @@ public: const std::string& comment = ""); bool IsGCCOnWindows() const { return this->UsingGCCOnWindows; } - void SetUsingGCCOnWindows(bool b) { this->UsingGCCOnWindows = b; } + void MarkAsGCCOnWindows() { this->UsingGCCOnWindows = true; } cmGlobalNinjaGenerator(cmake* cm); |