summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-04-26 14:35:26 -0400
committerBrad King <brad.king@kitware.com>2023-04-26 14:36:46 -0400
commit0f6a1dd3ed129e4c18c84432e41381471d47c107 (patch)
tree2508099e1ef18748460c81abb6d2c04c6e584c21
parent663cc941bd176347fb2fa89191629c6843bb4ebd (diff)
downloadcmake-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.cmake1
-rw-r--r--Source/cmNinjaTargetGenerator.cxx25
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