Deletes @AutoCodec annotation from BuildConfiguration.Fragment subclasses.
It's less safe than DynamicCodec.
PiperOrigin-RevId: 211828418
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
index 48753ef..5357946 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
@@ -18,12 +18,10 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.platform.PlatformConfigurationApi;
import java.util.List;
/** A configuration fragment describing the current platform configuration. */
-@AutoCodec
@ThreadSafety.Immutable
public class PlatformConfiguration extends BuildConfiguration.Fragment
implements PlatformConfigurationApi {
@@ -33,7 +31,6 @@
private final ImmutableList<String> extraToolchains;
private final ImmutableList<Label> enabledToolchainTypes;
- @AutoCodec.Instantiator
PlatformConfiguration(
Label hostPlatform,
ImmutableList<String> extraExecutionPlatforms,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
index 9e329ce..7da070a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.OptionsUtils.PathFragmentConverter;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -32,7 +31,6 @@
import javax.annotation.Nullable;
/** A configuration fragment that tells where the shell is. */
-@AutoCodec
public class ShellConfiguration extends BuildConfiguration.Fragment {
private static final ImmutableMap<OS, PathFragment> OS_SPECIFIC_SHELL =
ImmutableMap.<OS, PathFragment>builder()
@@ -43,7 +41,7 @@
private final PathFragment shellExecutable;
private final boolean useShBinaryStubScript;
- public ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) {
+ private ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) {
this.shellExecutable = shellExecutable;
this.useShBinaryStubScript = useShBinaryStubScript;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
index 022ea53..3ce4918 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
@@ -31,7 +31,6 @@
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.TestTimeout;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.RegexFilter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDefinition;
@@ -47,7 +46,6 @@
import java.util.Set;
/** Test-related options. */
-@AutoCodec
public class TestConfiguration extends Fragment {
public static final OptionsDiffPredicate HAVE_OPTIONS_AFFECTING_NON_TEST_TARGETS_CHANGED =
(diff, options) -> {
@@ -292,7 +290,7 @@
private final TestOptions options;
private final ImmutableMap<TestTimeout, Duration> testTimeout;
- TestConfiguration(TestOptions options) {
+ private TestConfiguration(TestOptions options) {
this.options = options;
this.testTimeout = ImmutableMap.copyOf(options.testTimeout);
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
index 7193ffa..d19e56b 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
@@ -24,7 +24,6 @@
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.common.options.Converter;
@@ -34,7 +33,6 @@
import com.google.devtools.common.options.OptionMetadataTag;
/** Bazel-specific Python configuration. */
-@AutoCodec
@Immutable
public class BazelPythonConfiguration extends BuildConfiguration.Fragment {
/**
@@ -151,8 +149,7 @@
private final Options options;
- @AutoCodec.Instantiator
- BazelPythonConfiguration(Options options) {
+ private BazelPythonConfiguration(Options options) {
this.options = options;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 991143c..f49e17e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -36,7 +36,6 @@
import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode;
import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter;
import com.google.devtools.build.lib.rules.cpp.CppOptions.LibcTopLabelConverter;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidConfigurationApi;
import com.google.devtools.common.options.Converters;
import com.google.devtools.common.options.EnumConverter;
@@ -48,7 +47,6 @@
import javax.annotation.Nullable;
/** Configuration fragment for Android rules. */
-@AutoCodec
@Immutable
public class AndroidConfiguration extends BuildConfiguration.Fragment
implements AndroidConfigurationApi {
@@ -977,7 +975,7 @@
private final boolean dataBindingV2;
private final boolean persistentBusyboxTools;
- AndroidConfiguration(Options options) throws InvalidConfigurationException {
+ private AndroidConfiguration(Options options) throws InvalidConfigurationException {
this.sdk = options.sdk;
this.useIncrementalNativeLibs = options.incrementalNativeLibs;
this.cpu = options.cpu;
@@ -1034,83 +1032,6 @@
}
}
- @AutoCodec.Instantiator
- AndroidConfiguration(
- Label sdk,
- String cpu,
- boolean useIncrementalNativeLibs,
- ConfigurationDistinguisher configurationDistinguisher,
- boolean incrementalDexing,
- int incrementalDexingShardsAfterProguard,
- boolean incrementalDexingUseDexSharder,
- boolean incrementalDexingAfterProguardByDefault,
- boolean assumeMinSdkVersion,
- ImmutableList<String> dexoptsSupportedInIncrementalDexing,
- ImmutableList<String> targetDexoptsThatPreventIncrementalDexing,
- ImmutableList<String> dexoptsSupportedInDexMerger,
- boolean useWorkersWithDexbuilder,
- boolean desugarJava8,
- boolean desugarJava8Libs,
- boolean checkDesugarDeps,
- boolean useRexToCompressDexFiles,
- boolean allowAndroidLibraryDepsWithoutSrcs,
- boolean useAndroidResourceShrinking,
- boolean useAndroidResourceCycleShrinking,
- AndroidManifestMerger manifestMerger,
- ApkSigningMethod apkSigningMethod,
- boolean useSingleJarApkBuilder,
- boolean compressJavaResources,
- boolean exportsManifestDefault,
- AndroidAaptVersion androidAaptVersion,
- boolean useAapt2ForRobolectric,
- boolean throwOnResourceConflict,
- boolean useParallelDex2Oat,
- boolean skipParsingAction,
- boolean fixedResourceNeverlinking,
- AndroidRobolectricTestDeprecationLevel robolectricTestDeprecationLevel,
- boolean checkForMigrationTag,
- boolean oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest,
- boolean dataBindingV2,
- boolean persistentBusyboxTools) {
- this.sdk = sdk;
- this.cpu = cpu;
- this.useIncrementalNativeLibs = useIncrementalNativeLibs;
- this.configurationDistinguisher = configurationDistinguisher;
- this.incrementalDexing = incrementalDexing;
- this.incrementalDexingShardsAfterProguard = incrementalDexingShardsAfterProguard;
- this.incrementalDexingUseDexSharder = incrementalDexingUseDexSharder;
- this.incrementalDexingAfterProguardByDefault = incrementalDexingAfterProguardByDefault;
- this.assumeMinSdkVersion = assumeMinSdkVersion;
- this.dexoptsSupportedInIncrementalDexing = dexoptsSupportedInIncrementalDexing;
- this.targetDexoptsThatPreventIncrementalDexing = targetDexoptsThatPreventIncrementalDexing;
- this.dexoptsSupportedInDexMerger = dexoptsSupportedInDexMerger;
- this.useWorkersWithDexbuilder = useWorkersWithDexbuilder;
- this.desugarJava8 = desugarJava8;
- this.desugarJava8Libs = desugarJava8Libs;
- this.checkDesugarDeps = checkDesugarDeps;
- this.useRexToCompressDexFiles = useRexToCompressDexFiles;
- this.allowAndroidLibraryDepsWithoutSrcs = allowAndroidLibraryDepsWithoutSrcs;
- this.useAndroidResourceShrinking = useAndroidResourceShrinking;
- this.useAndroidResourceCycleShrinking = useAndroidResourceCycleShrinking;
- this.manifestMerger = manifestMerger;
- this.apkSigningMethod = apkSigningMethod;
- this.useSingleJarApkBuilder = useSingleJarApkBuilder;
- this.compressJavaResources = compressJavaResources;
- this.exportsManifestDefault = exportsManifestDefault;
- this.androidAaptVersion = androidAaptVersion;
- this.useAapt2ForRobolectric = useAapt2ForRobolectric;
- this.throwOnResourceConflict = throwOnResourceConflict;
- this.useParallelDex2Oat = useParallelDex2Oat;
- this.skipParsingAction = skipParsingAction;
- this.fixedResourceNeverlinking = fixedResourceNeverlinking;
- this.robolectricTestDeprecationLevel = robolectricTestDeprecationLevel;
- this.checkForMigrationTag = checkForMigrationTag;
- this.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest =
- oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
- this.dataBindingV2 = dataBindingV2;
- this.persistentBusyboxTools = persistentBusyboxTools;
- }
-
@Override
public String getCpu() {
return cpu;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
index bb35a35..3530bc5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
@@ -22,14 +22,12 @@
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
import javax.annotation.Nullable;
/** Configuration fragment for android_local_test. */
-@AutoCodec
@Immutable
public class AndroidLocalTestConfiguration extends BuildConfiguration.Fragment {
/** android_local_test specific options */
@@ -81,15 +79,10 @@
private final boolean androidLocalTestBinaryResources;
- AndroidLocalTestConfiguration(Options options) {
+ private AndroidLocalTestConfiguration(Options options) {
this.androidLocalTestBinaryResources = options.androidLocalTestBinaryResources;
}
- @AutoCodec.Instantiator
- AndroidLocalTestConfiguration(boolean androidLocalTestBinaryResources) {
- this.androidLocalTestBinaryResources = androidLocalTestBinaryResources;
- }
-
public boolean useAndroidLocalTestBinaryResources() {
return this.androidLocalTestBinaryResources;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index 62e2143..ecea75d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -31,14 +31,12 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.apple.AppleConfigurationApi;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
/** A configuration containing flags required for Apple platforms and tools. */
-@AutoCodec
@Immutable
public class AppleConfiguration extends BuildConfiguration.Fragment
implements AppleConfigurationApi<PlatformType> {
@@ -80,8 +78,7 @@
private final boolean mandatoryMinimumVersion;
private final boolean objcProviderFromLinked;
- @AutoCodec.Instantiator
- AppleConfiguration(AppleCommandLineOptions options, String iosCpu) {
+ private AppleConfiguration(AppleCommandLineOptions options, String iosCpu) {
this.options = options;
this.iosCpu = iosCpu;
this.appleSplitCpu = Preconditions.checkNotNull(options.appleSplitCpu, "appleSplitCpu");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
index 39aa220..f653e89 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
@@ -23,26 +23,19 @@
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.apple.SwiftConfigurationApi;
/**
* A configuration containing flags required for Swift tools. This is used primarily by swift_*
* family of rules written in Skylark.
*/
-@AutoCodec
@Immutable
public class SwiftConfiguration extends BuildConfiguration.Fragment
implements SwiftConfigurationApi {
private final ImmutableList<String> copts;
- public SwiftConfiguration(SwiftCommandLineOptions options) {
- this(ImmutableList.copyOf(options.copts));
- }
-
- @AutoCodec.Instantiator
- SwiftConfiguration(ImmutableList<String> copts) {
- this.copts = copts;
+ private SwiftConfiguration(SwiftCommandLineOptions options) {
+ this.copts = ImmutableList.copyOf(options.copts);
}
/** Returns a list of options to use for compiling Swift. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
index 708a825..ac577dc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.config;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -29,7 +30,6 @@
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.Map;
import java.util.Optional;
import java.util.SortedMap;
@@ -39,7 +39,6 @@
* Configuration fragment for Android's config_feature_flag, flags which can be defined in BUILD
* files.
*/
-@AutoCodec
public final class ConfigFeatureFlagConfiguration extends BuildConfiguration.Fragment {
/**
* A configuration fragment loader able to create instances of {@link
@@ -95,24 +94,14 @@
@Nullable private final String flagHash;
/** Creates a new configuration fragment from the given {@link ConfigFeatureFlagOptions}. */
- public ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) {
+ @VisibleForTesting
+ ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) {
// TODO(mstaib): we'd love to only construct these when we're trimmed, but this is still what
// the top level looks like - make constructing an untrimmed configuration an error when no
// configurations are constructed untrimmed.
- this(
- options.getFlagValues(),
- options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of()),
- options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed());
- }
-
- @AutoCodec.Instantiator
- ConfigFeatureFlagConfiguration(
- ImmutableSortedMap<Label, String> flagValues,
- ImmutableSortedSet<Label> knownDefaultFlags,
- boolean isTrimmed) {
- this.flagValues = flagValues;
- this.knownDefaultFlags = knownDefaultFlags;
- this.isTrimmed = isTrimmed;
+ this.flagValues = options.getFlagValues();
+ this.knownDefaultFlags = options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of());
+ this.isTrimmed = options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed();
// We don't hash flags set to their default values; all valid configurations of a target have
// the same set of known flags, so the set of flags set to something other than their default
// values is enough to disambiguate configurations. Similarly, isTrimmed need not be hashed;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index e3bb2ff..46cbdef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -36,7 +36,6 @@
import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigurationParameters;
import com.google.devtools.build.lib.rules.cpp.CrosstoolConfigurationLoader.CrosstoolFile;
import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.cpp.CppConfigurationApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.syntax.EvalException;
@@ -79,7 +78,6 @@
* --compiler values, and construct the key as follows: <toolchain.cpu>|<toolchain.compiler>.
* </ul>
*/
-@AutoCodec
@Immutable
public final class CppConfiguration extends BuildConfiguration.Fragment
implements CppConfigurationApi<InvalidConfigurationException> {
@@ -299,8 +297,7 @@
cppToolchainInfo);
}
- @AutoCodec.Instantiator
- CppConfiguration(
+ private CppConfiguration(
Label crosstoolTop,
CrosstoolFile crosstoolFile,
String desiredCpu,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index ff5b8d1..4ed7b13 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -28,7 +28,6 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.java.JavaConfigurationApi;
import com.google.devtools.common.options.TriState;
import java.util.List;
@@ -36,7 +35,6 @@
import javax.annotation.Nullable;
/** A java compiler configuration containing the flags required for compilation. */
-@AutoCodec
@Immutable
public final class JavaConfiguration extends Fragment implements JavaConfigurationApi {
@@ -180,9 +178,7 @@
// TODO(dmarting): remove once we have a proper solution for #2539
private final boolean useLegacyBazelJavaTest;
- JavaConfiguration(
- JavaOptions javaOptions)
- throws InvalidConfigurationException {
+ JavaConfiguration(JavaOptions javaOptions) throws InvalidConfigurationException {
this.commandLineJavacFlags =
ImmutableList.copyOf(JavaHelper.tokenizeJavaOptions(javaOptions.javacOpts));
this.javaLauncherLabel = javaOptions.javaLauncher;
@@ -238,72 +234,6 @@
this.pluginList = ImmutableList.copyOf(javaOptions.pluginList);
}
- @AutoCodec.Instantiator
- JavaConfiguration(
- ImmutableList<String> commandLineJavacFlags,
- Label javaLauncherLabel,
- boolean useIjars,
- boolean useHeaderCompilation,
- boolean generateJavaDeps,
- boolean strictDepsJavaProtos,
- boolean protoGeneratedStrictDeps,
- boolean isJavaProtoExportsEnabled,
- OneVersionEnforcementLevel enforceOneVersion,
- boolean enforceOneVersionOnJavaTests,
- ImportDepsCheckingLevel importDepsCheckingLevel,
- boolean allowRuntimeDepsOnNeverLink,
- JavaClasspathMode javaClasspath,
- ImmutableList<String> defaultJvmFlags,
- ImmutableList<String> checkedConstraints,
- StrictDepsMode strictJavaDeps,
- String fixDepsTool,
- Label proguardBinary,
- ImmutableList<Label> extraProguardSpecs,
- TriState bundleTranslations,
- ImmutableList<Label> translationTargets,
- JavaOptimizationMode javaOptimizationMode,
- ImmutableMap<String, Optional<Label>> bytecodeOptimizers,
- Label toolchainLabel,
- Label runtimeLabel,
- boolean explicitJavaTestDeps,
- boolean experimentalTestRunner,
- boolean jplPropagateCcLinkParamsStore,
- boolean addTestSupportToCompileTimeDeps,
- ImmutableList<Label> pluginList,
- boolean useLegacyBazelJavaTest) {
- this.commandLineJavacFlags = commandLineJavacFlags;
- this.javaLauncherLabel = javaLauncherLabel;
- this.useIjars = useIjars;
- this.useHeaderCompilation = useHeaderCompilation;
- this.generateJavaDeps = generateJavaDeps;
- this.strictDepsJavaProtos = strictDepsJavaProtos;
- this.protoGeneratedStrictDeps = protoGeneratedStrictDeps;
- this.isJavaProtoExportsEnabled = isJavaProtoExportsEnabled;
- this.enforceOneVersion = enforceOneVersion;
- this.enforceOneVersionOnJavaTests = enforceOneVersionOnJavaTests;
- this.importDepsCheckingLevel = importDepsCheckingLevel;
- this.allowRuntimeDepsOnNeverLink = allowRuntimeDepsOnNeverLink;
- this.javaClasspath = javaClasspath;
- this.defaultJvmFlags = defaultJvmFlags;
- this.checkedConstraints = checkedConstraints;
- this.strictJavaDeps = strictJavaDeps;
- this.fixDepsTool = fixDepsTool;
- this.proguardBinary = proguardBinary;
- this.extraProguardSpecs = extraProguardSpecs;
- this.bundleTranslations = bundleTranslations;
- this.translationTargets = translationTargets;
- this.javaOptimizationMode = javaOptimizationMode;
- this.bytecodeOptimizers = bytecodeOptimizers;
- this.toolchainLabel = toolchainLabel;
- this.runtimeLabel = runtimeLabel;
- this.explicitJavaTestDeps = explicitJavaTestDeps;
- this.experimentalTestRunner = experimentalTestRunner;
- this.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore;
- this.addTestSupportToCompileTimeDeps = addTestSupportToCompileTimeDeps;
- this.pluginList = pluginList;
- this.useLegacyBazelJavaTest = useLegacyBazelJavaTest;
- }
-
@Override
// TODO(bazel-team): this is the command-line passed options, we should remove from skylark
// probably.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
index ab1364f..fd76062 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
@@ -26,7 +26,6 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.apple.J2ObjcConfigurationApi;
import java.util.Collections;
import javax.annotation.Nullable;
@@ -36,7 +35,6 @@
* configuration fragment is used by Java rules that can be transpiled (specifically, J2ObjCAspects
* thereof).
*/
-@AutoCodec
@Immutable
public class J2ObjcConfiguration extends Fragment implements J2ObjcConfigurationApi {
/**
@@ -93,28 +91,16 @@
private final boolean experimentalJ2ObjcHeaderMap;
@Nullable private final Label deadCodeReport;
- J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) {
- this(
+ private J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) {
+ this.translationFlags =
ImmutableList.<String>builder()
.addAll(J2OBJC_DEFAULT_TRANSLATION_FLAGS)
.addAll(j2ObjcOptions.translationFlags)
.addAll(J2OBJC_ALWAYS_ON_TRANSLATION_FLAGS)
- .build(),
- j2ObjcOptions.removeDeadCode,
- j2ObjcOptions.experimentalJ2ObjcHeaderMap,
- j2ObjcOptions.deadCodeReport);
- }
-
- @AutoCodec.Instantiator
- J2ObjcConfiguration(
- ImmutableList<String> translationFlags,
- boolean removeDeadCode,
- boolean experimentalJ2ObjcHeaderMap,
- Label deadCodeReport) {
- this.translationFlags = translationFlags;
- this.removeDeadCode = removeDeadCode;
- this.experimentalJ2ObjcHeaderMap = experimentalJ2ObjcHeaderMap;
- this.deadCodeReport = deadCodeReport;
+ .build();
+ this.removeDeadCode = j2ObjcOptions.removeDeadCode;
+ this.experimentalJ2ObjcHeaderMap = j2ObjcOptions.experimentalJ2ObjcHeaderMap;
+ this.deadCodeReport = j2ObjcOptions.deadCodeReport;
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 4f0e5e1..49c5994 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -24,12 +24,10 @@
import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
import com.google.devtools.build.lib.rules.cpp.HeaderDiscovery;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.apple.ObjcConfigurationApi;
import javax.annotation.Nullable;
/** A compiler configuration containing flags required for Objective-C compilation. */
-@AutoCodec
@Immutable
public class ObjcConfiguration extends BuildConfiguration.Fragment
implements ObjcConfigurationApi<PlatformType> {
@@ -112,60 +110,6 @@
this.strictObjcModuleMaps = objcOptions.strictObjcModuleMaps;
}
- @AutoCodec.Instantiator
- ObjcConfiguration(
- DottedVersion iosSimulatorVersion,
- String iosSimulatorDevice,
- DottedVersion watchosSimulatorVersion,
- String watchosSimulatorDevice,
- DottedVersion tvosSimulatorVersion,
- String tvosSimulatorDevice,
- boolean generateDsym,
- boolean generateLinkmap,
- boolean runMemleaks,
- ImmutableList<String> copts,
- CompilationMode compilationMode,
- ImmutableList<String> fastbuildOptions,
- boolean enableBinaryStripping,
- boolean moduleMapsEnabled,
- String signingCertName,
- boolean debugWithGlibcxx,
- Label extraEntitlements,
- boolean deviceDebugEntitlements,
- boolean enableAppleBinaryNativeProtos,
- HeaderDiscovery.DotdPruningMode dotdPruningPlan,
- boolean experimentalHeaderThinning,
- int objcHeaderThinningPartitionSize,
- Label objcHeaderScannerTool,
- Label appleSdk,
- boolean strictObjcModuleMaps) {
- this.iosSimulatorVersion = iosSimulatorVersion;
- this.iosSimulatorDevice = iosSimulatorDevice;
- this.watchosSimulatorVersion = watchosSimulatorVersion;
- this.watchosSimulatorDevice = watchosSimulatorDevice;
- this.tvosSimulatorVersion = tvosSimulatorVersion;
- this.tvosSimulatorDevice = tvosSimulatorDevice;
- this.generateDsym = generateDsym;
- this.generateLinkmap = generateLinkmap;
- this.runMemleaks = runMemleaks;
- this.copts = copts;
- this.compilationMode = compilationMode;
- this.fastbuildOptions = fastbuildOptions;
- this.enableBinaryStripping = enableBinaryStripping;
- this.moduleMapsEnabled = moduleMapsEnabled;
- this.signingCertName = signingCertName;
- this.debugWithGlibcxx = debugWithGlibcxx;
- this.extraEntitlements = extraEntitlements;
- this.deviceDebugEntitlements = deviceDebugEntitlements;
- this.enableAppleBinaryNativeProtos = enableAppleBinaryNativeProtos;
- this.dotdPruningPlan = dotdPruningPlan;
- this.experimentalHeaderThinning = experimentalHeaderThinning;
- this.objcHeaderThinningPartitionSize = objcHeaderThinningPartitionSize;
- this.objcHeaderScannerTool = objcHeaderScannerTool;
- this.appleSdk = appleSdk;
- this.strictObjcModuleMaps = strictObjcModuleMaps;
- }
-
/**
* Returns the type of device (e.g. 'iPhone 6') to simulate when running on the simulator.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index 8731315..60f8281 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -25,7 +25,6 @@
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.ProtoConfigurationApi;
import com.google.devtools.common.options.Converters;
import com.google.devtools.common.options.Option;
@@ -35,7 +34,6 @@
import java.util.List;
/** Configuration for Protocol Buffer Libraries. */
-@AutoCodec
@Immutable
// This module needs to be exported to Skylark so it can be passed as a mandatory host/target
// configuration fragment in aspect definitions.
@@ -201,8 +199,7 @@
private final ImmutableList<String> ccProtoLibrarySourceSuffixes;
private final Options options;
- @AutoCodec.Instantiator
- public ProtoConfiguration(Options options) {
+ private ProtoConfiguration(Options options) {
this.protocOpts = ImmutableList.copyOf(options.protocOpts);
this.ccProtoLibraryHeaderSuffixes = ImmutableList.copyOf(options.ccProtoLibraryHeaderSuffixes);
this.ccProtoLibrarySourceSuffixes = ImmutableList.copyOf(options.ccProtoLibrarySourceSuffixes);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
index 4118856..2323f46 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.OS;
@@ -32,7 +31,6 @@
* The configuration fragment containing information about the various pieces of infrastructure
* needed to run Python compilations.
*/
-@AutoCodec
@Immutable
@SkylarkModule(
name = "py",
@@ -44,7 +42,6 @@
private final TriState buildPythonZip;
private final boolean buildTransitiveRunfilesTrees;
- @AutoCodec.Instantiator
PythonConfiguration(
PythonVersion defaultPythonVersion,
boolean ignorePythonVersionAttribute,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
deleted file mode 100644
index 61e94f9..0000000
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.apple;
-
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
-import com.google.devtools.common.options.OptionsParsingException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Tests for serialization of {@link AppleConfiguration}. */
-@RunWith(JUnit4.class)
-public class AppleConfigurationSerializationTest {
-
- @Test
- public void testCodec() throws Exception {
- new SerializationTester(getSubjects()).runTests();
- }
-
- @Test
- public void optionsSerialization() throws Exception {
- new SerializationTester(
- BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
- .get(AppleCommandLineOptions.class))
- .runTests();
- }
-
- private static ImmutableList<AppleConfiguration> getSubjects() {
- AppleCommandLineOptions firstOptions = new AppleCommandLineOptions();
- firstOptions.mandatoryMinimumVersion = false;
- firstOptions.iosSdkVersion = DottedVersion.fromString("2.0");
- firstOptions.watchOsSdkVersion = DottedVersion.fromString("3.0");
- firstOptions.tvOsSdkVersion = DottedVersion.fromString("4.0");
- firstOptions.macOsSdkVersion = DottedVersion.fromString("5.0");
- firstOptions.iosMinimumOs = DottedVersion.fromString("6.1beta3.7");
- firstOptions.watchosMinimumOs = DottedVersion.fromString("7.0");
- firstOptions.tvosMinimumOs = DottedVersion.fromString("8.0");
- firstOptions.macosMinimumOs = DottedVersion.fromString("9.0");
- firstOptions.iosCpu = "ioscpu1";
- firstOptions.appleCrosstoolTop = Label.parseAbsoluteUnchecked("//apple/crosstool:top");
- firstOptions.applePlatformType = ApplePlatform.PlatformType.WATCHOS;
- firstOptions.appleSplitCpu = "appleSplitCpu1";
- firstOptions.configurationDistinguisher =
- AppleConfiguration.ConfigurationDistinguisher.APPLEBIN_TVOS;
- firstOptions.iosMultiCpus = ImmutableList.of("iosMultiCpu1", "iosMultiCpu2");
- firstOptions.watchosCpus = ImmutableList.of("watchosCpu1", "watchosCpu2", "watchosCpu3");
- firstOptions.tvosCpus = ImmutableList.of("tvosCpu1");
- firstOptions.macosCpus = ImmutableList.of();
- firstOptions.defaultProvisioningProfile =
- Label.parseAbsoluteUnchecked("//default/provisioning");
- firstOptions.xcodeVersionConfig = Label.parseAbsoluteUnchecked("//xcode/version:config");
- firstOptions.appleBitcodeMode = AppleCommandLineOptions.AppleBitcodeMode.EMBEDDED_MARKERS;
- firstOptions.xcodeVersion = "1.0";
- try {
- return ImmutableList.of(
- new AppleConfiguration(firstOptions, "iosCpuArg"),
- AppleConfiguration.create(
- BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
- .get(AppleCommandLineOptions.class),
- "another cpu"));
- } catch (OptionsParsingException e) {
- throw new IllegalStateException(e);
- }
- }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
index 73c02b1..badd79c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -10,40 +10,9 @@
visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
)
-SERIALIZATION_TEST_SRCS = ["AppleConfigurationSerializationTest.java"]
-
-java_library(
- name = "AppleConfigurationSerializationTest_lib",
- testonly = 1,
- srcs = SERIALIZATION_TEST_SRCS,
- deps = [
- "//src/main/java/com/google/devtools/build/lib:build-base",
- "//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/rules/apple",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
- "//src/main/java/com/google/devtools/common/options",
- "//third_party:guava",
- "//third_party:junit4",
- "//third_party/protobuf:protobuf_java",
- ],
-)
-
-java_test(
- name = "AppleConfigurationSerializationTest",
- test_class = "com.google.devtools.build.lib.AllTests",
- runtime_deps = [
- ":AppleConfigurationSerializationTest_lib",
- "//src/test/java/com/google/devtools/build/lib:test_runner",
- ],
-)
-
java_library(
name = "AppleRulesTests_lib",
- srcs = glob(
- ["*.java"],
- exclude = SERIALIZATION_TEST_SRCS,
- ),
+ srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:packages-internal",