diff options
author | Brad King <brad.king@kitware.com> | 2023-04-26 14:35:26 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-04-26 14:36:46 -0400 |
commit | 0f6a1dd3ed129e4c18c84432e41381471d47c107 (patch) | |
tree | 2508099e1ef18748460c81abb6d2c04c6e584c21 | |
parent | 663cc941bd176347fb2fa89191629c6843bb4ebd (diff) | |
download | cmake-0f6a1dd3ed129e4c18c84432e41381471d47c107.tar.gz |
Ninja: Revert "Exclude NVHPC -Werror flags during Fortran preprocessing"
Revert commit 6b58cdd4cf (Ninja: Exclude NVHPC -Werror flags during
Fortran preprocessing, 2023-04-04). Since commit 9d40f01442 (NVHPC: Use
-Werror for COMPILE_OPTIONS_WARNING_AS_ERROR, 2023-04-13), `nvfortran`
can handle the plain `-Werror` flag during preprocessing.
Issue: #24665
-rw-r--r-- | Modules/Compiler/NVHPC-Fortran.cmake | 1 | ||||
-rw-r--r-- | Source/cmNinjaTargetGenerator.cxx | 25 |
2 files changed, 2 insertions, 24 deletions
diff --git a/Modules/Compiler/NVHPC-Fortran.cmake b/Modules/Compiler/NVHPC-Fortran.cmake index 879c140de0..59755b3a71 100644 --- a/Modules/Compiler/NVHPC-Fortran.cmake +++ b/Modules/Compiler/NVHPC-Fortran.cmake @@ -1,4 +1,3 @@ include(Compiler/PGI-Fortran) include(Compiler/NVHPC) __compiler_nvhpc(Fortran) -set(CMAKE_Fortran_PREPROCESS_SOURCE_EXCLUDE_FLAGS_REGEX "(^| )-Werror([=,][a-z][a-z-]+)?( |$)") diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 905c68ed61..c2ae629609 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -21,8 +21,6 @@ #include <cm3p/json/value.h> #include <cm3p/json/writer.h> -#include "cmsys/RegularExpression.hxx" - #include "cmComputeLinkInformation.h" #include "cmCustomCommandGenerator.h" #include "cmDyndepCollation.h" @@ -1262,7 +1260,6 @@ namespace { cmNinjaBuild GetScanBuildStatement(const std::string& ruleName, const std::string& ppFileName, bool compilePP, bool compilePPWithDefines, - cmValue ppExcludeFlagsRegex, cmNinjaBuild& objBuild, cmNinjaVars& vars, const std::string& objectFileName, cmLocalGenerator* lg) @@ -1291,20 +1288,6 @@ cmNinjaBuild GetScanBuildStatement(const std::string& ruleName, // Scanning and compilation generally use the same flags. scanBuild.Variables["FLAGS"] = vars["FLAGS"]; - // Exclude flags not valid during preprocessing. - if (compilePP && !ppExcludeFlagsRegex.IsEmpty()) { - std::string in = std::move(scanBuild.Variables["FLAGS"]); - std::string out; - cmsys::RegularExpression regex(*ppExcludeFlagsRegex); - std::string::size_type pos = 0; - while (regex.find(in.c_str() + pos)) { - out = cmStrCat(out, in.substr(pos, regex.start()), ' '); - pos += regex.end(); - } - out = cmStrCat(out, in.substr(pos)); - scanBuild.Variables["FLAGS"] = std::move(out); - } - if (compilePP && !compilePPWithDefines) { // Move preprocessor definitions to the scan/preprocessor build statement. std::swap(scanBuild.Variables["DEFINES"], vars["DEFINES"]); @@ -1529,22 +1512,18 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement( std::string scanRuleName; std::string ppFileName; - cmValue ppExcludeFlagsRegex; if (compilePP) { scanRuleName = this->LanguagePreprocessAndScanRule(language, config); ppFileName = this->ConvertToNinjaPath( this->GetPreprocessedFilePath(source, config)); - ppExcludeFlagsRegex = this->Makefile->GetDefinition(cmStrCat( - "CMAKE_", language, "_PREPROCESS_SOURCE_EXCLUDE_FLAGS_REGEX")); } else { scanRuleName = this->LanguageScanRule(language, config); ppFileName = cmStrCat(objectFileName, ".ddi.i"); } cmNinjaBuild ppBuild = GetScanBuildStatement( - scanRuleName, ppFileName, compilePP, compilePPWithDefines, - ppExcludeFlagsRegex, objBuild, vars, objectFileName, - this->LocalGenerator); + scanRuleName, ppFileName, compilePP, compilePPWithDefines, objBuild, + vars, objectFileName, this->LocalGenerator); if (compilePP) { // In case compilation requires flags that are incompatible with |