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
diff --git a/Modules/Compiler/NVHPC-Fortran.cmake b/Modules/Compiler/NVHPC-Fortran.cmake
index 879c140..59755b3 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 905c68e..c2ae629 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 @@
 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 @@
   // 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 @@
 
     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