diff options
author | Dubach, Joev <Joev.Dubach@nuance.com> | 2022-07-27 20:08:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-07-27 20:51:15 (GMT) |
commit | 9dbcfb8fdd3d98080bc658846d4ed50d990736c1 (patch) | |
tree | 9cff9c394ea33e50b5d4d56bd7d2cea37338c65b | |
parent | f44b79ad9bc24e84eabbf104f8a99c948dbaf326 (diff) | |
download | CMake-9dbcfb8fdd3d98080bc658846d4ed50d990736c1.zip CMake-9dbcfb8fdd3d98080bc658846d4ed50d990736c1.tar.gz CMake-9dbcfb8fdd3d98080bc658846d4ed50d990736c1.tar.bz2 |
MSVC: Recognize -XYZ as well as /XYZ when parsing MS tool command lines
Fixes: #23772
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 10 | ||||
-rw-r--r-- | Source/cmcldeps.cxx | 1 | ||||
-rw-r--r-- | Source/cmcmd.cxx | 13 | ||||
-rw-r--r-- | Utilities/Release/WiX/CustomAction/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Utilities/cmcurl/CMakeLists.txt | 2 |
5 files changed, 23 insertions, 7 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index f17a654..66b91cb 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3148,12 +3148,14 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( } // Check if ASan is enabled. - if (flags.find("/fsanitize=address") != std::string::npos) { + if (flags.find("/fsanitize=address") != std::string::npos || + flags.find("-fsanitize=address") != std::string::npos) { this->ASanEnabledConfigurations.insert(configName); } // Check if (lib)Fuzzer is enabled. - if (flags.find("/fsanitize=fuzzer") != std::string::npos) { + if (flags.find("/fsanitize=fuzzer") != std::string::npos || + flags.find("-fsanitize=fuzzer") != std::string::npos) { this->FuzzerEnabledConfigurations.insert(configName); } @@ -3198,7 +3200,9 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( // anymore, because cmGeneratorTarget may not be aware that the // target uses C++/CLI. if (flags.find("/clr") != std::string::npos || - defineFlags.find("/clr") != std::string::npos) { + flags.find("-clr") != std::string::npos || + defineFlags.find("/clr") != std::string::npos || + defineFlags.find("-clr") != std::string::npos) { if (configName == this->Configurations[0]) { std::string message = "For the target \"" + this->GeneratorTarget->GetName() + diff --git a/Source/cmcldeps.cxx b/Source/cmcldeps.cxx index 8921aa0..69eb19e 100644 --- a/Source/cmcldeps.cxx +++ b/Source/cmcldeps.cxx @@ -273,6 +273,7 @@ int main() std::string clrest = rest; // rc: /fo x.dir\x.rc.res -> cl: /out:x.dir\x.rc.res.dep.obj clrest = replace(clrest, "/fo ", "/out:"); + clrest = replace(clrest, "-fo ", "-out:"); clrest = replace(clrest, objfile, objfile + ".dep.obj "); cl = "\"" + cl + "\" /P /DRC_INVOKED /TC "; diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 9ab39f1..b1f1bcf 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -2242,13 +2242,18 @@ bool cmVSLink::Parse(std::vector<std::string>::const_iterator argBeg, // Parse the link command to extract information we need. for (; arg != argEnd; ++arg) { if (cmSystemTools::Strucmp(arg->c_str(), "/INCREMENTAL:YES") == 0 || - cmSystemTools::Strucmp(arg->c_str(), "/INCREMENTAL") == 0) { + cmSystemTools::Strucmp(arg->c_str(), "-INCREMENTAL:YES") == 0 || + cmSystemTools::Strucmp(arg->c_str(), "/INCREMENTAL") == 0 || + cmSystemTools::Strucmp(arg->c_str(), "-INCREMENTAL") == 0) { this->Incremental = true; - } else if (cmSystemTools::Strucmp(arg->c_str(), "/MANIFEST:NO") == 0) { + } else if (cmSystemTools::Strucmp(arg->c_str(), "/MANIFEST:NO") == 0 || + cmSystemTools::Strucmp(arg->c_str(), "-MANIFEST:NO") == 0) { this->LinkGeneratesManifest = false; - } else if (cmHasLiteralPrefix(*arg, "/Fe")) { + } else if (cmHasLiteralPrefix(*arg, "/Fe") || + cmHasLiteralPrefix(*arg, "-Fe")) { this->TargetFile = arg->substr(3); - } else if (cmHasLiteralPrefix(*arg, "/out:")) { + } else if (cmHasLiteralPrefix(*arg, "/out:") || + cmHasLiteralPrefix(*arg, "-out:")) { this->TargetFile = arg->substr(5); } } diff --git a/Utilities/Release/WiX/CustomAction/CMakeLists.txt b/Utilities/Release/WiX/CustomAction/CMakeLists.txt index 9d89dd8..dd07f9f 100644 --- a/Utilities/Release/WiX/CustomAction/CMakeLists.txt +++ b/Utilities/Release/WiX/CustomAction/CMakeLists.txt @@ -7,6 +7,10 @@ if(MSVC) "CMAKE_CXX_FLAGS_${CONFIG}" "${CMAKE_CXX_FLAGS_${CONFIG}}" ) + string(REPLACE "-MD" "-MT" + "CMAKE_CXX_FLAGS_${CONFIG}" + "${CMAKE_CXX_FLAGS_${CONFIG}}" + ) endforeach() endif() endif() diff --git a/Utilities/cmcurl/CMakeLists.txt b/Utilities/cmcurl/CMakeLists.txt index f842270..b8cf412 100644 --- a/Utilities/cmcurl/CMakeLists.txt +++ b/Utilities/cmcurl/CMakeLists.txt @@ -1465,6 +1465,8 @@ if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) if(CMAKE_C_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + elseif(CMAKE_C_FLAGS MATCHES "-W[0-4]") + string(REGEX REPLACE "-W[0-4]" "-W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") endif() |