Remove most of the nocopts-handling java code from bazel. Leaving the params in to avoid blaze crashes until we're sure no bzl files will pass it anymore. RELNOTES: Remove CoptsFilter. rules_cc 0.2.19 no longer uses it.. PiperOrigin-RevId: 935030016 Change-Id: I4534565598bbbbc51bdad0436de43e6e7f0e87c6
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 570bc27..427c759 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
@@ -19,12 +19,8 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.CollidingProvidesException; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; -import java.util.regex.Pattern; import net.starlark.java.eval.EvalException; -import net.starlark.java.eval.Printer; import net.starlark.java.eval.Starlark; -import net.starlark.java.eval.StarlarkSemantics; -import net.starlark.java.eval.StarlarkValue; /** Common parts of the implementation of cc rules. */ public final class CcCommon { @@ -98,52 +94,6 @@ } } - /** A filter that removes copts from a c++ compile action according to a nocopts regex. */ - public static final class CoptsFilter implements StarlarkValue { - private final Pattern noCoptsPattern; - private final boolean allPasses; - - private CoptsFilter(Pattern noCoptsPattern, boolean allPasses) { - this.noCoptsPattern = noCoptsPattern; - this.allPasses = allPasses; - } - - /** Creates a filter that filters all matches to a regex. */ - public static CoptsFilter fromRegex(Pattern noCoptsPattern) { - return new CoptsFilter(noCoptsPattern, false); - } - - /** Creates a filter that passes on all inputs. */ - public static CoptsFilter alwaysPasses() { - return new CoptsFilter(null, true); - } - - /** - * Returns true if the provided string passes through the filter, or false if it should be - * removed. - */ - public boolean passesFilter(String flag) { - if (allPasses) { - return true; - } else { - return !noCoptsPattern.matcher(flag).matches(); - } - } - - @Override - public boolean isImmutable() { - return true; - } - - @Override - public void repr(Printer printer, StarlarkSemantics semantics) { - printer.append("CoptsFilter(noCoptsPattern="); - printer.append(noCoptsPattern == null ? "null" : noCoptsPattern.pattern()); - printer.append(", allPasses="); - printer.append(Boolean.toString(allPasses)); - printer.append(")"); - } - } private static ImmutableList<String> getCoverageFeatures(CppConfiguration cppConfiguration) { ImmutableList.Builder<String> coverageFeatures = ImmutableList.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java index f9a0692..00a2702 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
@@ -18,7 +18,6 @@ import static com.google.devtools.build.lib.analysis.constraints.ConstraintConstants.getOsFromConstraintsOrHost; import static com.google.devtools.build.lib.rules.cpp.CcModule.nullIfNone; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -55,7 +54,6 @@ import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.packages.Types; import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions; -import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcCompilationContext.HeaderInfo; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.MapVariables; @@ -65,8 +63,6 @@ import com.google.devtools.build.lib.vfs.PathFragment; import java.util.IdentityHashMap; import java.util.Objects; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; import javax.annotation.Nullable; import net.starlark.java.annot.Param; import net.starlark.java.annot.ParamType; @@ -814,16 +810,13 @@ "action_construction_context must be either StarlarkRuleContext or" + " StarlarkTemplateContext"); } - CoptsFilter coptsFilter = - createCoptsFilter( - Starlark.isNullOrNone(coptsFilterObject) ? null : (String) coptsFilterObject); + CppCompileActionBuilder builder = createCppCompileActionBuilder( ccActionContext.getActionOwner(), CcCompilationContext.of(ccCompilationContext), ccToolchain, configuration, - coptsFilter, featureConfigurationForStarlark, sourceArtifact, additionalCompilationInputs, @@ -944,19 +937,6 @@ } } - private CoptsFilter createCoptsFilter(String coptsFilterString) throws EvalException { - if (Strings.isNullOrEmpty(coptsFilterString)) { - return CoptsFilter.alwaysPasses(); - } else { - try { - return CoptsFilter.fromRegex(Pattern.compile(coptsFilterString)); - } catch (PatternSyntaxException e) { - throw Starlark.errorf( - "invalid regular expression '%s': %s", coptsFilterString, e.getMessage()); - } - } - } - @StarlarkMethod( name = "create_cc_compile_action_template", documented = false, @@ -1016,9 +996,7 @@ boolean needsIncludeValidation, String toolchainType) throws RuleErrorException, EvalException { - CoptsFilter coptsFilter = - createCoptsFilter( - Starlark.isNullOrNone(coptsFilterObject) ? null : (String) coptsFilterObject); + ImmutableList.Builder<ArtifactCategory> outputCategories = ImmutableList.builder(); for (Object outputCategoryObject : outputCategoriesUnchecked) { if (outputCategoryObject instanceof String outputCategoryString) { @@ -1049,7 +1027,6 @@ CcCompilationContext.of(ccCompilationContext), ccToolchain, configuration, - coptsFilter, featureConfigurationForStarlark, source, additionalCompilationInputs, @@ -1089,7 +1066,6 @@ CcCompilationContext ccCompilationContext, StarlarkInfo ccToolchain, BuildConfigurationValue configuration, - CoptsFilter coptsFilter, FeatureConfigurationForStarlark featureConfigurationForStarlark, Artifact sourceArtifact, Sequence<?> additionalCompilationInputs, @@ -1108,7 +1084,6 @@ new CppCompileActionBuilder(owner, CcToolchainProvider.create(ccToolchain), configuration) .setSourceFile(sourceArtifact) .setCcCompilationContext(ccCompilationContext) - .setCoptsFilter(coptsFilter) .setFeatureConfiguration(featureConfigurationForStarlark.getFeatureConfiguration()) .addExecutionInfo(executionInfo); if (additionalCompilationInputs.size() > 0) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java index cabfccb..3606cd5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
@@ -21,7 +21,6 @@ import com.google.devtools.build.lib.actions.CommandLine; import com.google.devtools.build.lib.actions.CommandLineExpansionException; import com.google.devtools.build.lib.actions.PathMapper; -import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ExpansionException; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.util.Pair; @@ -33,17 +32,14 @@ /** The compile command line for the C++ compile action. */ public final class CompileCommandLine { - private final CoptsFilter coptsFilter; private final FeatureConfiguration featureConfiguration; private final CcToolchainVariables variables; private final String actionName; private CompileCommandLine( - CoptsFilter coptsFilter, FeatureConfiguration featureConfiguration, CcToolchainVariables variables, String actionName) { - this.coptsFilter = coptsFilter; this.featureConfiguration = Preconditions.checkNotNull(featureConfiguration); this.variables = variables; this.actionName = actionName; @@ -167,7 +163,7 @@ } } - // For each option in 'in', add it to 'out' unless it is matched by the 'coptsFilter' regexp. + // For each option in 'in', add it to 'out'. private void addFilteredOptions( List<String> out, List<Pair<String, List<String>>> expandedFeatures) { for (Pair<String, List<String>> pair : expandedFeatures) { @@ -178,9 +174,7 @@ // We do not uses Java's stream API here as it causes a substantial overhead compared to the // very little work that this is actually doing. for (String flag : pair.getSecond()) { - if (coptsFilter.passesFilter(flag)) { - out.add(flag); - } + out.add(flag); } } } @@ -210,27 +204,24 @@ } } - public static Builder builder(CoptsFilter coptsFilter, String actionName) { - return new Builder(coptsFilter, actionName); + public static Builder builder(String actionName) { + return new Builder(actionName); } /** A builder for a {@link CompileCommandLine}. */ public static final class Builder { - private CoptsFilter coptsFilter; private FeatureConfiguration featureConfiguration; private CcToolchainVariables variables = CcToolchainVariables.empty(); private final String actionName; public CompileCommandLine build() { return new CompileCommandLine( - Preconditions.checkNotNull(coptsFilter), Preconditions.checkNotNull(featureConfiguration), Preconditions.checkNotNull(variables), Preconditions.checkNotNull(actionName)); } - private Builder(CoptsFilter coptsFilter, String actionName) { - this.coptsFilter = coptsFilter; + private Builder(String actionName) { this.actionName = actionName; } @@ -247,11 +238,5 @@ return this; } - @CanIgnoreReturnValue - @VisibleForTesting - Builder setCoptsFilter(CoptsFilter filter) { - this.coptsFilter = Preconditions.checkNotNull(filter); - return this; - } } }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 7e1abaa..8d8b237 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -74,7 +74,6 @@ import com.google.devtools.build.lib.profiler.Profiler; import com.google.devtools.build.lib.profiler.ProfilerTask; import com.google.devtools.build.lib.profiler.SilentCloseable; -import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.IncludeScanner.IncludeScanningHeaderData; import com.google.devtools.build.lib.server.FailureDetails.CppCompile; @@ -233,7 +232,6 @@ * @param dwoFile the .dwo output file where debug information is stored for Fission builds (null * if Fission mode is disabled) * @param ccCompilationContext the {@code CcCompilationContext} - * @param coptsFilter regular expression to remove options from {@code copts} * @param additionalIncludeScanningRoots list of additional artifacts to include-scan * @param actionName a string giving the name of this action for the purpose of toolchain * evaluation @@ -263,7 +261,6 @@ @Nullable Artifact dwoFile, @Nullable Artifact ltoIndexingFile, CcCompilationContext ccCompilationContext, - CoptsFilter coptsFilter, ImmutableList<Artifact> additionalIncludeScanningRoots, ImmutableMap<String, String> executionInfo, String actionName, @@ -299,8 +296,7 @@ this.builtinIncludeFiles = builtinIncludeFiles; this.additionalIncludeScanningRoots = Preconditions.checkNotNull(additionalIncludeScanningRoots); - this.compileCommandLine = - buildCommandLine(coptsFilter, actionName, featureConfiguration, variables); + this.compileCommandLine = buildCommandLine(actionName, featureConfiguration, variables); this.executionInfo = executionInfo; this.actionName = actionName; this.progressMessagePrefix = progressMessagePrefix; @@ -423,11 +419,10 @@ } static CompileCommandLine buildCommandLine( - CoptsFilter coptsFilter, String actionName, FeatureConfiguration featureConfiguration, CcToolchainVariables variables) { - return CompileCommandLine.builder(coptsFilter, actionName) + return CompileCommandLine.builder(actionName) .setFeatureConfiguration(featureConfiguration) .setVariables(variables) .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java index 6fc5d23..3f18da2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -28,7 +28,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; -import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.errorprone.annotations.CanIgnoreReturnValue; @@ -62,7 +61,6 @@ private Artifact gcnoFile; private CcCompilationContext ccCompilationContext = null; private final List<String> pluginOpts = new ArrayList<>(); - private CoptsFilter coptsFilter = CoptsFilter.alwaysPasses(); private ImmutableList<PathFragment> extraSystemIncludePrefixes = ImmutableList.of(); private boolean usePic; private final CppConfiguration cppConfiguration; @@ -122,7 +120,6 @@ this.gcnoFile = other.gcnoFile; this.ccCompilationContext = other.ccCompilationContext; this.pluginOpts.addAll(other.pluginOpts); - this.coptsFilter = other.coptsFilter; this.extraSystemIncludePrefixes = other.extraSystemIncludePrefixes; this.cppConfiguration = other.cppConfiguration; this.configuration = other.configuration; @@ -334,7 +331,6 @@ dwoFile, ltoIndexingFile, ccCompilationContext, - coptsFilter, ImmutableList.copyOf(additionalIncludeScanningRoots), ImmutableMap.copyOf(executionInfo), actionName, @@ -588,16 +584,6 @@ } @CanIgnoreReturnValue - public CppCompileActionBuilder setCoptsFilter(CoptsFilter coptsFilter) { - this.coptsFilter = Preconditions.checkNotNull(coptsFilter); - return this; - } - - CoptsFilter getCoptsFilter() { - return coptsFilter; - } - - @CanIgnoreReturnValue public CppCompileActionBuilder setBuildInfoHeaderArtifacts( ImmutableList<Artifact> buildInfoHeaderArtifacts) { this.buildInfoHeaderArtifacts = buildInfoHeaderArtifacts;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java index 79bb552..0041962 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
@@ -205,7 +205,6 @@ throws CommandLineExpansionException, InterruptedException { CompileCommandLine commandLine = CppCompileAction.buildCommandLine( - cppCompileActionBuilder.getCoptsFilter(), CppActionNames.CPP_COMPILE, cppCompileActionBuilder.getFeatureConfiguration(), cppCompileActionBuilder.getVariables());
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java index 50cdd28..ce37db0 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.packages.util.ResourceLoader; -import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.testutil.TestConstants; import java.io.IOException; @@ -149,6 +148,6 @@ } private CompileCommandLine.Builder makeCompileCommandLineBuilder() throws Exception { - return CompileCommandLine.builder(CoptsFilter.alwaysPasses(), "c++-compile"); + return CompileCommandLine.builder("c++-compile"); } }