aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java58
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java27
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/LabelCodec.java (renamed from src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java)6
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifierCodec.java (renamed from src/main/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodec.java)9
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/RepositoryNameCodec.java (renamed from src/main/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodec.java)28
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java74
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionKeyCodec.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/BUILD5
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/PathCodec.java (renamed from src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java)12
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/PathFragmentCodec.java (renamed from src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java)7
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java1
21 files changed, 122 insertions, 138 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
index ac4a005e0a..66c0f14126 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
@@ -18,11 +18,11 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.hash.HashCode;
import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.PathCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.devtools.build.lib.vfs.PathCodec;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -52,8 +52,7 @@ public final class BlazeDirectories {
// Include directory name, relative to execRoot/blaze-out/configuration.
public static final String RELATIVE_INCLUDE_DIR = StringCanonicalizer.intern("include");
- @VisibleForTesting
- static final String DEFAULT_EXEC_ROOT = "default-exec-root";
+ @VisibleForTesting static final String DEFAULT_EXEC_ROOT = "default-exec-root";
private final ServerDirectories serverDirectories;
/** Workspace root and server CWD. */
@@ -67,10 +66,7 @@ public final class BlazeDirectories {
private final Path localOutputPath;
private final String productName;
- public BlazeDirectories(
- ServerDirectories serverDirectories,
- Path workspace,
- String productName) {
+ public BlazeDirectories(ServerDirectories serverDirectories, Path workspace, String productName) {
this.serverDirectories = serverDirectories;
this.workspace = workspace;
this.productName = productName;
@@ -94,38 +90,34 @@ public final class BlazeDirectories {
}
/**
- * Returns the base of the output tree, which hosts all build and scratch
- * output for a user and workspace.
+ * Returns the base of the output tree, which hosts all build and scratch output for a user and
+ * workspace.
*/
public Path getInstallBase() {
return serverDirectories.getInstallBase();
}
- /**
- * Returns the workspace directory, which is also the working dir of the server.
- */
+ /** Returns the workspace directory, which is also the working dir of the server. */
public Path getWorkspace() {
return workspace;
}
- /**
- * Returns if the workspace directory is a valid workspace.
- */
+ /** Returns if the workspace directory is a valid workspace. */
public boolean inWorkspace() {
return this.workspace != null;
}
/**
- * Returns the base of the output tree, which hosts all build and scratch
- * output for a user and workspace.
+ * Returns the base of the output tree, which hosts all build and scratch output for a user and
+ * workspace.
*/
public Path getOutputBase() {
return serverDirectories.getOutputBase();
}
/**
- * Returns the execution root for the main package. This is created before the workspace file
- * has been read, so it has an incorrect path. Use {@link #getExecRoot(String)} instead.
+ * Returns the execution root for the main package. This is created before the workspace file has
+ * been read, so it has an incorrect path. Use {@link #getExecRoot(String)} instead.
*/
@Deprecated
public Path getExecRoot() {
@@ -150,16 +142,12 @@ public final class BlazeDirectories {
return outputPath;
}
- /**
- * Returns the output path used by this Blaze instance.
- */
+ /** Returns the output path used by this Blaze instance. */
public Path getOutputPath(String workspaceName) {
return getExecRoot(workspaceName).getRelative(getRelativeOutputPath());
}
- /**
- * Returns the local output path used by this Blaze instance.
- */
+ /** Returns the local output path used by this Blaze instance. */
public Path getLocalOutputPath() {
return localOutputPath;
}
@@ -172,10 +160,7 @@ public final class BlazeDirectories {
return execRoot.getRelative(getRelativeOutputPath()).getRelative("_tmp/action_outs");
}
- /**
- * Returns the installed embedded binaries directory, under the shared
- * installBase location.
- */
+ /** Returns the installed embedded binaries directory, under the shared installBase location. */
public Path getEmbeddedBinariesRoot() {
return serverDirectories.getEmbeddedBinariesRoot();
}
@@ -185,14 +170,13 @@ public final class BlazeDirectories {
* {@link BlazeDirectories} of this server instance. Nothing else should be placed here.
*/
public Root getBuildDataDirectory(String workspaceName) {
- return Root
- .asDerivedRoot(getExecRoot(workspaceName), getOutputPath(workspaceName), true);
+ return Root.asDerivedRoot(getExecRoot(workspaceName), getOutputPath(workspaceName), true);
}
- /**
- * Returns the MD5 content hash of the blaze binary (includes deploy JAR, embedded binaries, and
- * anything else that ends up in the install_base).
- */
+ /**
+ * Returns the MD5 content hash of the blaze binary (includes deploy JAR, embedded binaries, and
+ * anything else that ends up in the install_base).
+ */
public HashCode getInstallMD5() {
return serverDirectories.getInstallMD5();
}
@@ -206,8 +190,8 @@ public final class BlazeDirectories {
}
/**
- * Returns the output directory name, relative to the execRoot.
- * TODO(bazel-team): (2011) make this private?
+ * Returns the output directory name, relative to the execRoot. TODO(bazel-team): (2011) make this
+ * private?
*/
public static String getRelativeOutputPath(String productName) {
return StringCanonicalizer.intern(productName + "-out");
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java
index 3b62084a68..cf9e65e1ef 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java
@@ -15,8 +15,8 @@
package com.google.devtools.build.lib.analysis;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
-import com.google.devtools.build.lib.skyframe.serialization.PathCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
+import com.google.devtools.build.lib.vfs.PathCodec;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java
index e296fb39f9..788e3abfd1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java
@@ -19,9 +19,9 @@ import com.google.common.base.Strings;
import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.PathCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.devtools.build.lib.vfs.PathCodec;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -62,38 +62,33 @@ public final class ServerDirectories {
}
private static HashCode checkMD5(HashCode hash) {
- Preconditions.checkArgument(hash.bits() == Hashing.md5().bits(),
- "Hash '%s' has %s bits", hash, hash.bits());
+ Preconditions.checkArgument(
+ hash.bits() == Hashing.md5().bits(), "Hash '%s' has %s bits", hash, hash.bits());
return hash;
}
- /**
- * Returns the installation base directory. Currently used by info command only.
- */
+ /** Returns the installation base directory. Currently used by info command only. */
public Path getInstallBase() {
return installBase;
}
/**
- * Returns the base of the output tree, which hosts all build and scratch
- * output for a user and workspace.
+ * Returns the base of the output tree, which hosts all build and scratch output for a user and
+ * workspace.
*/
public Path getOutputBase() {
return outputBase;
}
- /**
- * Returns the installed embedded binaries directory, under the shared
- * installBase location.
- */
+ /** Returns the installed embedded binaries directory, under the shared installBase location. */
public Path getEmbeddedBinariesRoot() {
return installBase.getChild("_embedded_binaries");
}
- /**
- * Returns the MD5 content hash of the blaze binary (includes deploy JAR, embedded binaries, and
- * anything else that ends up in the install_base).
- */
+ /**
+ * Returns the MD5 content hash of the blaze binary (includes deploy JAR, embedded binaries, and
+ * anything else that ends up in the install_base).
+ */
public HashCode getInstallMD5() {
return installMD5;
}
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
index 306eba1bec..2883d4277a 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/BUILD
@@ -21,9 +21,11 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
"//third_party:jsr305",
+ "//third_party/protobuf:protobuf_java",
],
)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java b/src/main/java/com/google/devtools/build/lib/cmdline/LabelCodec.java
index 89978baa67..cda83dbf82 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/LabelCodec.java
@@ -12,10 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
+package com.google.devtools.build.lib.cmdline;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodec.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifierCodec.java
index 73aede67b1..8107714e33 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifierCodec.java
@@ -12,17 +12,18 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
+package com.google.devtools.build.lib.cmdline;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.RepositoryName;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.vfs.PathFragmentCodec;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
/** Custom serialization logic for {@link PackageIdentifier}s. */
-class PackageIdentifierCodec implements ObjectCodec<PackageIdentifier> {
+public class PackageIdentifierCodec implements ObjectCodec<PackageIdentifier> {
private final RepositoryNameCodec repoNameCodec = new RepositoryNameCodec();
private final PathFragmentCodec pathFragmentCodec = new PathFragmentCodec();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodec.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryNameCodec.java
index c9d0976acd..67a6c55eab 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryNameCodec.java
@@ -12,16 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
+package com.google.devtools.build.lib.cmdline;
-import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.cmdline.RepositoryName;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
+import com.google.protobuf.ByteString;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
/** Custom serialization for {@link RepositoryName}. */
-class RepositoryNameCodec implements ObjectCodec<RepositoryName> {
+public class RepositoryNameCodec implements ObjectCodec<RepositoryName> {
@Override
public Class<RepositoryName> getEncodedClass() {
@@ -48,9 +49,26 @@ class RepositoryNameCodec implements ObjectCodec<RepositoryName> {
}
try {
// We can read the string we wrote back as bytes to avoid string decoding/copying.
- return SerializationCommonUtils.deserializeRepoName(codedIn.readBytes());
+ return deserializeRepoName(codedIn.readBytes());
} catch (LabelSyntaxException e) {
throw new SerializationException("Failed to deserialize RepositoryName", e);
}
}
+
+ private static final ByteString DEFAULT_REPOSITORY =
+ ByteString.copyFromUtf8(RepositoryName.DEFAULT.getName());
+ private static final ByteString MAIN_REPOSITORY =
+ ByteString.copyFromUtf8(RepositoryName.MAIN.getName());
+
+ public static RepositoryName deserializeRepoName(ByteString repoNameBytes)
+ throws LabelSyntaxException {
+ // We expect MAIN_REPOSITORY the vast majority of the time, so check for it first.
+ if (repoNameBytes.equals(MAIN_REPOSITORY)) {
+ return RepositoryName.MAIN;
+ } else if (repoNameBytes.equals(DEFAULT_REPOSITORY)) {
+ return RepositoryName.DEFAULT;
+ } else {
+ return RepositoryName.create(repoNameBytes.toStringUtf8());
+ }
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
index 14fb440670..73a54fc9f1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
@@ -25,11 +25,11 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration.DefaultL
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.LabelCodec;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher;
import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
import com.google.devtools.build.lib.skyframe.serialization.EnumCodec;
-import com.google.devtools.build.lib.skyframe.serialization.LabelCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -47,9 +47,7 @@ import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
import java.util.List;
-/**
- * Command-line options for building for Apple platforms.
- */
+/** Command-line options for building for Apple platforms. */
public class AppleCommandLineOptions extends FragmentOptions {
@Option(
@@ -57,7 +55,7 @@ public class AppleCommandLineOptions extends FragmentOptions {
defaultValue = "false",
category = "experimental",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = { OptionEffectTag.LOSES_INCREMENTAL_STATE, OptionEffectTag.BUILD_FILE_SEMANTICS },
+ effectTags = {OptionEffectTag.LOSES_INCREMENTAL_STATE, OptionEffectTag.BUILD_FILE_SEMANTICS},
help = "Whether Apple rules must have a mandatory minimum_os_version attribute."
)
// TODO(b/37096178): This flag should be default-on and then be removed.
@@ -68,9 +66,10 @@ public class AppleCommandLineOptions extends FragmentOptions {
defaultValue = "true",
category = "experimental",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = { OptionEffectTag.LOSES_INCREMENTAL_STATE, OptionEffectTag.BUILD_FILE_SEMANTICS },
- help = "Whether Apple rules which control linking should propagate objc provider at the top "
- + "level"
+ effectTags = {OptionEffectTag.LOSES_INCREMENTAL_STATE, OptionEffectTag.BUILD_FILE_SEMANTICS},
+ help =
+ "Whether Apple rules which control linking should propagate objc provider at the top "
+ + "level"
)
// TODO(b/32411441): This flag should be default-off and then be removed.
public boolean objcProviderFromLinked;
@@ -181,19 +180,13 @@ public class AppleCommandLineOptions extends FragmentOptions {
@VisibleForTesting public static final String DEFAULT_TVOS_SDK_VERSION = "9.0";
@VisibleForTesting static final String DEFAULT_IOS_CPU = "x86_64";
- /**
- * The default watchos CPU value.
- */
+ /** The default watchos CPU value. */
public static final String DEFAULT_WATCHOS_CPU = "i386";
- /**
- * The default tvOS CPU value.
- */
+ /** The default tvOS CPU value. */
public static final String DEFAULT_TVOS_CPU = "x86_64";
- /**
- * The default macOS CPU value.
- */
+ /** The default macOS CPU value. */
public static final String DEFAULT_MACOS_CPU = "x86_64";
@Option(
@@ -387,24 +380,27 @@ public class AppleCommandLineOptions extends FragmentOptions {
)
public boolean targetUsesAppleCrosstool;
- /**
- * Returns whether the minimum OS version is explicitly set for the current platform.
- */
+ /** Returns whether the minimum OS version is explicitly set for the current platform. */
public DottedVersion getMinimumOsVersion() {
switch (applePlatformType) {
- case IOS: return iosMinimumOs;
- case MACOS: return macosMinimumOs;
- case TVOS: return tvosMinimumOs;
- case WATCHOS: return watchosMinimumOs;
- default: throw new IllegalStateException();
+ case IOS:
+ return iosMinimumOs;
+ case MACOS:
+ return macosMinimumOs;
+ case TVOS:
+ return tvosMinimumOs;
+ case WATCHOS:
+ return watchosMinimumOs;
+ default:
+ throw new IllegalStateException();
}
}
/**
* Returns the architecture implied by these options.
*
- * <p> In contexts in which a configuration instance is present, prefer
- * {@link AppleConfiguration#getSingleArchitecture}.
+ * <p>In contexts in which a configuration instance is present, prefer {@link
+ * AppleConfiguration#getSingleArchitecture}.
*/
public String getSingleArchitecture() {
if (!Strings.isNullOrEmpty(appleSplitCpu)) {
@@ -440,12 +436,13 @@ public class AppleCommandLineOptions extends FragmentOptions {
@SkylarkModule(
name = "apple_bitcode_mode",
category = SkylarkModuleCategory.NONE,
- doc = "The Bitcode mode to use when compiling Objective-C and Swift code on Apple platforms. "
- + "Possible values are:<br><ul>"
- + "<li><code>'none'</code></li>"
- + "<li><code>'embedded'</code></li>"
- + "<li><code>'embedded_markers'</code></li>"
- + "</ul>"
+ doc =
+ "The Bitcode mode to use when compiling Objective-C and Swift code on Apple platforms. "
+ + "Possible values are:<br><ul>"
+ + "<li><code>'none'</code></li>"
+ + "<li><code>'embedded'</code></li>"
+ + "<li><code>'embedded_markers'</code></li>"
+ + "</ul>"
)
@Immutable
public enum AppleBitcodeMode implements SkylarkValue {
@@ -488,16 +485,14 @@ public class AppleCommandLineOptions extends FragmentOptions {
}
/**
- * Returns the flags that should be added to compile and link actions to use this
- * bitcode setting.
+ * Returns the flags that should be added to compile and link actions to use this bitcode
+ * setting.
*/
public ImmutableList<String> getCompileAndLinkFlags() {
return clangFlags;
}
- /**
- * Converts to {@link AppleBitcodeMode}.
- */
+ /** Converts to {@link AppleBitcodeMode}. */
public static class Converter extends EnumConverter<AppleBitcodeMode> {
public Converter() {
super(AppleBitcodeMode.class, "apple bitcode mode");
@@ -597,8 +592,7 @@ public class AppleCommandLineOptions extends FragmentOptions {
}
/** Flag converter for {@link PlatformType}. */
- public static final class PlatformTypeConverter
- extends EnumConverter<PlatformType> {
+ public static final class PlatformTypeConverter extends EnumConverter<PlatformType> {
public PlatformTypeConverter() {
super(PlatformType.class, "Apple platform type");
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionKeyCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionKeyCodec.java
index c32a0f8154..d466391e39 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionKeyCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionKeyCodec.java
@@ -15,8 +15,8 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableSortedSet;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.LabelCodec;
import com.google.devtools.build.lib.skyframe.TestSuiteExpansionValue.TestSuiteExpansionKey;
-import com.google.devtools.build.lib.skyframe.serialization.LabelCodec;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.protobuf.CodedInputStream;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index 10c813df2d..bb25cbcffd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -11,8 +11,6 @@ java_library(
name = "serialization",
srcs = glob(["**/*.java"]),
deps = [
- "//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
"//third_party/protobuf:protobuf_java",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java
index 85abc95e17..b5baec07b2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java
@@ -14,10 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
-import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
-import com.google.protobuf.ByteString;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -26,22 +23,6 @@ import java.io.IOException;
public class SerializationCommonUtils {
public static final ImmutableListCodec<String> STRING_LIST_CODEC =
new ImmutableListCodec<>(StringCodecs.asciiOptimized());
- private static final ByteString DEFAULT_REPOSITORY =
- ByteString.copyFromUtf8(RepositoryName.DEFAULT.getName());
- private static final ByteString MAIN_REPOSITORY =
- ByteString.copyFromUtf8(RepositoryName.MAIN.getName());
-
- public static RepositoryName deserializeRepoName(ByteString repoNameBytes)
- throws LabelSyntaxException {
- // We expect MAIN_REPOSITORY the vast majority of the time, so check for it first.
- if (repoNameBytes.equals(MAIN_REPOSITORY)) {
- return RepositoryName.MAIN;
- } else if (repoNameBytes.equals(DEFAULT_REPOSITORY)) {
- return RepositoryName.DEFAULT;
- } else {
- return RepositoryName.create(repoNameBytes.toStringUtf8());
- }
- }
public static <T> void serializeNullable(T obj, CodedOutputStream out, ObjectCodec<T> codec)
throws IOException, SerializationException {
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/BUILD b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
index bd52ab8db5..95b9ca8e6c 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
@@ -9,6 +9,7 @@ filegroup(
PATH_FRAGMENT_SOURCES = [
"Canonicalizer.java",
"PathFragment.java",
+ "PathFragmentCodec.java",
"PathFragmentSerializationProxy.java",
"UnixPathFragment.java",
"WindowsPathFragment.java",
@@ -22,7 +23,9 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:os_util",
"//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//third_party:guava",
+ "//third_party/protobuf:protobuf_java",
],
)
@@ -47,8 +50,10 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/shell",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/common/options",
"//third_party:guava",
"//third_party:jsr305",
+ "//third_party/protobuf:protobuf_java",
],
)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java b/src/main/java/com/google/devtools/build/lib/vfs/PathCodec.java
index 5c44f9c0b5..872466316d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/PathCodec.java
@@ -12,12 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
+package com.google.devtools.build.lib.vfs;
import com.google.common.base.Preconditions;
-import com.google.devtools.build.lib.vfs.FileSystem;
-import com.google.devtools.build.lib.vfs.Path;
-import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -29,7 +28,7 @@ public class PathCodec implements ObjectCodec<Path> {
private final PathFragmentCodec pathFragmentCodec;
/** Create an instance for serializing and deserializing {@link Path}s on {@code fileSystem}. */
- PathCodec(FileSystem fileSystem) {
+ public PathCodec(FileSystem fileSystem) {
this.fileSystem = fileSystem;
this.pathFragmentCodec = new PathFragmentCodec();
}
@@ -51,8 +50,7 @@ public class PathCodec implements ObjectCodec<Path> {
}
@Override
- public Path deserialize(CodedInputStream codedIn)
- throws IOException, SerializationException {
+ public Path deserialize(CodedInputStream codedIn) throws IOException, SerializationException {
PathFragment pathFragment = pathFragmentCodec.deserialize(codedIn);
return fileSystem.getPath(pathFragment);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java b/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentCodec.java
index a2f9e25955..2c0f493fc8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentCodec.java
@@ -12,16 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
+package com.google.devtools.build.lib.vfs;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
-import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
/** Custom serialization for {@link PathFragment}s. */
-class PathFragmentCodec implements ObjectCodec<PathFragment> {
+public class PathFragmentCodec implements ObjectCodec<PathFragment> {
private final ObjectCodec<String> stringCodec = StringCodecs.asciiOptimized();
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
index 1a83055b09..425d148bc0 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectoriesCodec;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
+import com.google.devtools.build.lib.vfs.PathCodec;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
index 7427e92255..b2a2d49619 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.LabelCodec;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
index 55d3d11a67..a9c9ff7449 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.cmdline.PackageIdentifierCodec;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.runner.RunWith;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
index 38c2a4285e..4b37a3c03f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.devtools.build.lib.vfs.PathCodec;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
index 8bf52760af..52490c719a 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.vfs.PathFragmentCodec;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
index f1f08cdd82..692f602bc2 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.LabelCodec;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.PrecomputedValueCodec;
import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
index 3bbd29a44e..30f4e08cfd 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
@@ -18,6 +18,7 @@ import static org.junit.Assert.fail;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryNameCodec;
import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import java.io.IOException;
import org.junit.Test;