aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-08-10 19:26:34 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-08-11 12:56:11 +0200
commit4435515d156dbb0cc40869de686d326b175f61b8 (patch)
tree4e15de1bd9693857c867d6ef11bf4aee52714eaf /src/main/java/com/google
parentbc4eb273de3ac59962d6e78628a28a9109e43715 (diff)
Inline @Deprecated methods in CustomCommandLine.
Apart from updating CustomCommandLineTest this CL is entirely automated. We also sneak in a rename of addFormat -> addFormatted. RELNOTES: None PiperOrigin-RevId: 164870140
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java131
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/ParamFileHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java41
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java58
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java24
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/ResourceJarActionBuilder.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java54
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java38
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java44
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java12
32 files changed, 319 insertions, 398 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
index a2a7c9bd65..61ecebee60 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
@@ -30,7 +30,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.util.Preconditions;
-import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -600,7 +599,7 @@ public final class CustomCommandLine extends CommandLine {
}
/** Calls {@link String#format} at command line expansion time. */
- public Builder addFormat(String formatStr, Object... args) {
+ public Builder addFormatted(String formatStr, Object... args) {
Preconditions.checkNotNull(formatStr);
FormatArg.push(arguments, formatStr, args);
return this;
@@ -694,134 +693,6 @@ public final class CustomCommandLine extends CommandLine {
return this;
}
- @Deprecated
- public Builder addPath(PathFragment pathFragment) {
- return add(pathFragment);
- }
-
- @Deprecated
- public Builder addExecPath(String arg, @Nullable Artifact artifact) {
- return add(arg, artifact);
- }
-
- @Deprecated
- public Builder addExecPaths(@Nullable ImmutableCollection<Artifact> artifacts) {
- return add(artifacts);
- }
-
- @Deprecated
- public Builder addExecPaths(@Nullable NestedSet<Artifact> artifacts) {
- return add(artifacts);
- }
-
- @Deprecated
- public Builder addExecPaths(String arg, @Nullable ImmutableCollection<Artifact> artifacts) {
- return add(arg, artifacts);
- }
-
- @Deprecated
- public Builder addExecPaths(String arg, @Nullable NestedSet<Artifact> artifacts) {
- return add(arg, artifacts);
- }
-
- @Deprecated
- public Builder addJoinExecPaths(
- String arg, String delimiter, @Nullable ImmutableCollection<?> values) {
- return add(arg, VectorArg.of(values).joinWith(delimiter));
- }
-
- @Deprecated
- public Builder addJoinExecPaths(String arg, String delimiter, @Nullable NestedSet<?> values) {
- return add(arg, VectorArg.of(values).joinWith(delimiter));
- }
-
- @Deprecated
- public Builder addPaths(String formatStr, PathFragment path) {
- Preconditions.checkNotNull(path);
- return addFormat(formatStr, path);
- }
-
- @Deprecated
- public Builder addPaths(String formatStr, PathFragment path0, PathFragment path1) {
- Preconditions.checkNotNull(path0);
- Preconditions.checkNotNull(path1);
- return addFormat(formatStr, path0, path1);
- }
-
- @Deprecated
- public Builder addBeforeEachExecPath(
- String beforeEach, @Nullable ImmutableCollection<Artifact> values) {
- return add(VectorArg.of(values).beforeEach(beforeEach));
- }
-
- @Deprecated
- public Builder addBeforeEachExecPath(String beforeEach, @Nullable NestedSet<Artifact> values) {
- return add(VectorArg.of(values).beforeEach(beforeEach));
- }
-
- @Deprecated
- public Builder addJoinPaths(
- String delimiter, @Nullable ImmutableCollection<PathFragment> pathFragments) {
- return add(VectorArg.of(pathFragments).joinWith(delimiter));
- }
-
- public Builder addBeforeEach(String beforeEach, @Nullable ImmutableCollection<?> values) {
- return add(VectorArg.of(values).beforeEach(beforeEach));
- }
-
- @Deprecated
- public Builder addBeforeEachPath(
- String beforeEach, @Nullable ImmutableCollection<PathFragment> values) {
- return add(VectorArg.of(values).beforeEach(beforeEach));
- }
-
- @Deprecated
- public Builder addBeforeEachPath(String beforeEach, @Nullable NestedSet<PathFragment> values) {
- return add(VectorArg.of(values).beforeEach(beforeEach));
- }
-
- @Deprecated
- public <T> Builder addJoinValues(
- String arg,
- String join,
- @Nullable ImmutableCollection<?> values,
- Function<T, String> mapFn) {
- return add(arg, VectorArg.of(values).joinWith(join).mapEach(mapFn));
- }
-
- @Deprecated
- public <T> Builder addJoinValues(
- String arg, String join, @Nullable NestedSet<?> values, Function<T, String> mapFn) {
- return add(arg, VectorArg.of(values).joinWith(join).mapEach(mapFn));
- }
-
- @Deprecated
- public Builder addFormatEach(String formatStr, @Nullable ImmutableCollection<?> values) {
- return add(VectorArg.of(values).formatEach(formatStr));
- }
-
- @Deprecated
- public Builder addFormatEach(String formatStr, @Nullable NestedSet<?> values) {
- return add(VectorArg.of(values).formatEach(formatStr));
- }
-
- @Deprecated
- public Builder addJoinStrings(
- String arg, String delimiter, @Nullable ImmutableCollection<?> values) {
- return add(arg, VectorArg.of(values).joinWith(delimiter));
- }
-
- /**
- * Adds a param file as an argument.
- *
- * @param paramFilePrefix The character that denotes a param file, commonly '@'
- * @param paramFile The param file artifact
- */
- @Deprecated
- public Builder addParamFile(String paramFilePrefix, @Nullable Artifact paramFile) {
- return addWithPrefix(paramFilePrefix, paramFile);
- }
-
public CustomCommandLine build() {
return new CustomCommandLine(arguments);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParamFileHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParamFileHelper.java
index d364f924c0..9da449dd5b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParamFileHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParamFileHelper.java
@@ -91,7 +91,7 @@ public final class ParamFileHelper {
ImmutableList<String> executableArgs, ParamFileInfo paramFileInfo, Artifact parameterFile) {
return CustomCommandLine.builder()
.add(executableArgs)
- .addParamFile(paramFileInfo.getFlag(), parameterFile)
+ .addWithPrefix(paramFileInfo.getFlag(), parameterFile)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index fc2b6a69c8..350317923a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -46,6 +46,7 @@ import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction.Builder;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -1339,8 +1340,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
CommandLine mergeCommandLine =
CustomCommandLine.builder()
- .addBeforeEachExecPath("--input_zip", shardDexes)
- .addExecPath("--output_zip", classesDex)
+ .add(VectorArg.of(shardDexes).beforeEach("--input_zip"))
+ .add("--output_zip", classesDex)
.build();
ruleContext.registerAction(
new SpawnAction.Builder()
@@ -1563,11 +1564,11 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
CustomCommandLine.Builder shardCommandLine =
CustomCommandLine.builder()
- .addBeforeEachExecPath("--output_jar", shards)
- .addExecPath("--output_resources", javaResourceJar);
+ .add(VectorArg.of(shards).beforeEach("--output_jar"))
+ .add("--output_resources", javaResourceJar);
if (mainDexList != null) {
- shardCommandLine.addExecPath("--main_dex_filter", mainDexList);
+ shardCommandLine.add("--main_dex_filter", mainDexList);
shardAction.addInput(mainDexList);
}
@@ -1579,7 +1580,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
if (proguardedJar != null) {
// When proguard is used we can't use dex archives, so just shuffle the proguarded jar
checkArgument(!useDexArchives, "Dex archives are incompatible with Proguard");
- shardCommandLine.addExecPath("--input_jar", proguardedJar);
+ shardCommandLine.add("--input_jar", proguardedJar);
shardAction.addInput(proguardedJar);
} else {
ImmutableList<Artifact> classpath =
@@ -1618,11 +1619,11 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
} else {
classpath = classpath.stream().map(derivedJarFunction::apply).collect(toImmutableList());
}
- shardCommandLine.addBeforeEachExecPath("--input_jar", classpath);
+ shardCommandLine.add(VectorArg.of(classpath).beforeEach("--input_jar"));
shardAction.addInputs(classpath);
if (inclusionFilterJar != null) {
- shardCommandLine.addExecPath("--inclusion_filter_jar", inclusionFilterJar);
+ shardCommandLine.add("--inclusion_filter_jar", inclusionFilterJar);
shardAction.addInput(inclusionFilterJar);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
index 7e0dfbb075..fee0bbbaa4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
@@ -335,13 +335,13 @@ public class AndroidIdlHelper {
.setExecutable(ruleContext.getExecutablePrerequisite("$idlclass", Mode.HOST))
.setCommandLine(
CustomCommandLine.builder()
- .addExecPath("--manifest_proto", manifestProtoOutput)
- .addExecPath("--class_jar", classJar)
- .addExecPath("--output_class_jar", idlClassJar)
- .addExecPath("--output_source_jar", idlSourceJar)
+ .add("--manifest_proto", manifestProtoOutput)
+ .add("--class_jar", classJar)
+ .add("--output_class_jar", idlClassJar)
+ .add("--output_source_jar", idlSourceJar)
.add("--temp_dir")
- .addPath(idlTempDir)
- .addExecPaths(ImmutableList.copyOf(generatedIdlJavaFiles))
+ .add(idlTempDir)
+ .add(ImmutableList.copyOf(generatedIdlJavaFiles))
.build())
.useParameterFile(ParameterFileType.SHELL_QUOTED)
.setProgressMessage("Building idl jars %s", idlClassJar.prettyPrint())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index fd66a26dfc..bac612c6c1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.RunfilesSupport;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.android.AndroidLibraryAarProvider.Aar;
@@ -240,12 +241,14 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
CustomCommandLine.Builder cmdLineArgs = CustomCommandLine.builder();
if (!transitiveAars.isEmpty()) {
- cmdLineArgs.addJoinValues(
- "--android_libraries", ",", transitiveAars, AndroidLocalTestBase::aarCmdLineArg);
+ cmdLineArgs.add(
+ "--android_libraries",
+ VectorArg.of(transitiveAars).joinWith(",").mapEach(AndroidLocalTestBase::aarCmdLineArg));
}
if (!strictAars.isEmpty()) {
- cmdLineArgs.addJoinValues(
- "--strict_libraries", ",", strictAars, AndroidLocalTestBase::aarCmdLineArg);
+ cmdLineArgs.add(
+ "--strict_libraries",
+ VectorArg.of(strictAars).joinWith(",").mapEach(AndroidLocalTestBase::aarCmdLineArg));
}
RunfilesSupport runfilesSupport =
RunfilesSupport.withExecutable(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
index 3e7e853d57..ddf4e42bb0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
@@ -133,7 +133,7 @@ public class AndroidResourceMergingActionBuilder {
// Use a FluentIterable to avoid flattening the NestedSets
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
- builder.addExecPath("--androidJar", sdk.getAndroidJar());
+ builder.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
Preconditions.checkNotNull(primary);
@@ -141,7 +141,7 @@ public class AndroidResourceMergingActionBuilder {
inputs.addTransitive(RESOURCE_CONTAINER_TO_ARTIFACTS.apply(primary));
Preconditions.checkNotNull(primary.getManifest());
- builder.addExecPath("--primaryManifest", primary.getManifest());
+ builder.add("--primaryManifest", primary.getManifest());
inputs.add(primary.getManifest());
ResourceContainerConverter.convertDependencies(
@@ -149,19 +149,19 @@ public class AndroidResourceMergingActionBuilder {
List<Artifact> outs = new ArrayList<>();
if (classJarOut != null) {
- builder.addExecPath("--classJarOutput", classJarOut);
+ builder.add("--classJarOutput", classJarOut);
outs.add(classJarOut);
}
if (mergedResourcesOut != null) {
- builder.addExecPath("--resourcesOutput", mergedResourcesOut);
+ builder.add("--resourcesOutput", mergedResourcesOut);
outs.add(mergedResourcesOut);
}
// For now, do manifest processing to remove placeholders that aren't handled by the legacy
// manifest merger. Remove this once enough users migrate over to the new manifest merger.
if (manifestOut != null) {
- builder.addExecPath("--manifestOutput", manifestOut);
+ builder.add("--manifestOutput", manifestOut);
outs.add(manifestOut);
}
@@ -174,7 +174,7 @@ public class AndroidResourceMergingActionBuilder {
// TODO(corysmith): Move the data binding parsing out of the merging pass to enable faster
// aapt2 builds.
if (dataBindingInfoZip != null) {
- builder.addExecPath("--dataBindingInfoOut", dataBindingInfoZip);
+ builder.add("--dataBindingInfoOut", dataBindingInfoZip);
outs.add(dataBindingInfoZip);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
index 67d083074f..99f4b90a70 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
@@ -140,7 +140,7 @@ public class AndroidResourceParsingActionBuilder {
inputs.addTransitive(RESOURCE_CONTAINER_TO_ARTIFACTS.apply(primary));
Preconditions.checkNotNull(output);
- builder.addExecPath("--output", output);
+ builder.add("--output", output);
SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
if (OS.getCurrent() == OS.WINDOWS) {
@@ -179,17 +179,17 @@ public class AndroidResourceParsingActionBuilder {
.add("--")
.add("--resources")
.add(resourceDirectories)
- .addExecPath("--output", compiledSymbols);
+ .add("--output", compiledSymbols);
outs.add(compiledSymbols);
// The databinding needs to be processed before compilation, so the stripping happens here.
if (dataBindingInfoZip != null) {
- flatFileBuilder.addExecPath("--manifest", resourceContainer.getManifest());
+ flatFileBuilder.add("--manifest", resourceContainer.getManifest());
inputs.add(resourceContainer.getManifest());
if (!Strings.isNullOrEmpty(resourceContainer.getJavaPackage())) {
flatFileBuilder.add("--packagePath").add(resourceContainer.getJavaPackage());
}
- builder.addExecPath("--dataBindingInfoOut", dataBindingInfoZip);
+ builder.add("--dataBindingInfoOut", dataBindingInfoZip);
outs.add(dataBindingInfoZip);
}
// Create the spawn action.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
index 832fc66ced..3680f10414 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
@@ -151,7 +151,7 @@ public class AndroidResourceValidatorActionBuilder {
// Set the busybox tool.
builder.add("--tool").add("LINK_STATIC_LIBRARY").add("--");
- builder.addExecPath("--aapt2", sdk.getAapt2().getExecutable());
+ builder.add("--aapt2", sdk.getAapt2().getExecutable());
FluentIterable<Artifact> libraries =
FluentIterable.from(resourceDeps.getResources()).transform(
@@ -162,10 +162,10 @@ public class AndroidResourceValidatorActionBuilder {
.add(libraries.join(Joiner.on(context.getConfiguration().getHostPathSeparator())));
inputs.addAll(libraries);
- builder.addExecPath("--compiled", compiledSymbols);
+ builder.add("--compiled", compiledSymbols);
inputs.add(compiledSymbols);
- builder.addExecPath("--manifest", primary.getManifest());
+ builder.add("--manifest", primary.getManifest());
inputs.add(validated.getManifest());
if (!Strings.isNullOrEmpty(customJavaPackage)) {
@@ -174,13 +174,13 @@ public class AndroidResourceValidatorActionBuilder {
builder.add("--packageForR").add(customJavaPackage);
}
- builder.addExecPath("--sourceJarOut", aapt2SourceJarOut);
+ builder.add("--sourceJarOut", aapt2SourceJarOut);
outs.add(aapt2SourceJarOut);
- builder.addExecPath("--rTxtOut", aapt2RTxtOut);
+ builder.add("--rTxtOut", aapt2RTxtOut);
outs.add(aapt2RTxtOut);
- builder.addExecPath("--staticLibraryOut", staticLibraryOut);
+ builder.add("--staticLibraryOut", staticLibraryOut);
outs.add(staticLibraryOut);
ruleContext.registerAction(
@@ -217,21 +217,21 @@ public class AndroidResourceValidatorActionBuilder {
builder.add("--buildToolsVersion").add(sdk.getBuildToolsVersion());
}
- builder.addExecPath("--aapt", sdk.getAapt().getExecutable());
+ builder.add("--aapt", sdk.getAapt().getExecutable());
ImmutableList.Builder<Artifact> inputs = ImmutableList.builder();
- builder.addExecPath("--annotationJar", sdk.getAnnotationsJar());
+ builder.add("--annotationJar", sdk.getAnnotationsJar());
inputs.add(sdk.getAnnotationsJar());
- builder.addExecPath("--androidJar", sdk.getAndroidJar());
+ builder.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
Preconditions.checkNotNull(mergedResources);
- builder.addExecPath("--mergedResources", mergedResources);
+ builder.add("--mergedResources", mergedResources);
inputs.add(mergedResources);
- builder.addExecPath("--manifest", primary.getManifest());
+ builder.add("--manifest", primary.getManifest());
inputs.add(primary.getManifest());
if (debug) {
@@ -245,11 +245,11 @@ public class AndroidResourceValidatorActionBuilder {
}
List<Artifact> outs = new ArrayList<>();
Preconditions.checkNotNull(rTxtOut);
- builder.addExecPath("--rOutput", rTxtOut);
+ builder.add("--rOutput", rTxtOut);
outs.add(rTxtOut);
Preconditions.checkNotNull(sourceJarOut);
- builder.addExecPath("--srcJarOutput", sourceJarOut);
+ builder.add("--srcJarOutput", sourceJarOut);
outs.add(sourceJarOut);
SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
index f171ec6971..a76a6da073 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.Builder;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion;
@@ -281,7 +282,7 @@ public class AndroidResourcesProcessorBuilder {
// Set the busybox tool.
builder.add("--tool").add("AAPT2_PACKAGE").add("--");
- builder.addExecPath("--aapt2", sdk.getAapt2().getExecutable());
+ builder.add("--aapt2", sdk.getAapt2().getExecutable());
ResourceContainerConverter.convertDependencies(
dependencies, builder, inputs, AAPT2_RESOURCE_DEP_TO_ARG, AAPT2_RESOURCE_DEP_TO_ARTIFACTS);
@@ -344,7 +345,7 @@ public class AndroidResourcesProcessorBuilder {
ResourceContainerConverter.convertDependencies(
dependencies, builder, inputs, RESOURCE_DEP_TO_ARG, RESOURCE_DEP_TO_ARTIFACTS);
- builder.addExecPath("--aapt", sdk.getAapt().getExecutable());
+ builder.add("--aapt", sdk.getAapt().getExecutable());
configureCommonFlags(outs, inputs, builder);
if (OS.getCurrent() == OS.WINDOWS) {
@@ -403,10 +404,10 @@ public class AndroidResourcesProcessorBuilder {
builder.add("--buildToolsVersion").add(sdk.getBuildToolsVersion());
}
- builder.addExecPath("--annotationJar", sdk.getAnnotationsJar());
+ builder.add("--annotationJar", sdk.getAnnotationsJar());
inputs.add(sdk.getAnnotationsJar());
- builder.addExecPath("--androidJar", sdk.getAndroidJar());
+ builder.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
if (isLibrary) {
@@ -414,40 +415,40 @@ public class AndroidResourcesProcessorBuilder {
}
if (rTxtOut != null) {
- builder.addExecPath("--rOutput", rTxtOut);
+ builder.add("--rOutput", rTxtOut);
outs.add(rTxtOut);
}
if (symbols != null) {
- builder.addExecPath("--symbolsOut", symbols);
+ builder.add("--symbolsOut", symbols);
outs.add(symbols);
}
if (sourceJarOut != null) {
- builder.addExecPath("--srcJarOutput", sourceJarOut);
+ builder.add("--srcJarOutput", sourceJarOut);
outs.add(sourceJarOut);
}
if (proguardOut != null) {
- builder.addExecPath("--proguardOutput", proguardOut);
+ builder.add("--proguardOutput", proguardOut);
outs.add(proguardOut);
}
if (mainDexProguardOut != null) {
- builder.addExecPath("--mainDexProguardOutput", mainDexProguardOut);
+ builder.add("--mainDexProguardOutput", mainDexProguardOut);
outs.add(mainDexProguardOut);
}
if (manifestOut != null) {
- builder.addExecPath("--manifestOutput", manifestOut);
+ builder.add("--manifestOutput", manifestOut);
outs.add(manifestOut);
}
if (mergedResourcesOut != null) {
- builder.addExecPath("--resourcesOutput", mergedResourcesOut);
+ builder.add("--resourcesOutput", mergedResourcesOut);
outs.add(mergedResourcesOut);
}
if (apkOut != null) {
- builder.addExecPath("--packagePath", apkOut);
+ builder.add("--packagePath", apkOut);
outs.add(apkOut);
}
if (resourceFilter.hasConfigurationFilters() && !resourceFilter.isPrefiltering()) {
@@ -458,17 +459,19 @@ public class AndroidResourcesProcessorBuilder {
}
ImmutableList<String> filteredResources = resourceFilter.getResourcesToIgnoreInExecution();
if (!filteredResources.isEmpty()) {
- builder.addJoinStrings("--prefilteredResources", ",", filteredResources);
+ builder.add("--prefilteredResources", VectorArg.of(filteredResources).joinWith(","));
}
if (!uncompressedExtensions.isEmpty()) {
- builder.addJoinStrings(
- "--uncompressedExtensions", ",", ImmutableList.copyOf(uncompressedExtensions));
+ builder.add(
+ "--uncompressedExtensions",
+ VectorArg.of(ImmutableList.copyOf(uncompressedExtensions)).joinWith(","));
}
if (!crunchPng) {
builder.add("--useAaptCruncher=no");
}
if (!assetsToIgnore.isEmpty()) {
- builder.addJoinStrings("--assetsToIgnore", ",", ImmutableList.copyOf(assetsToIgnore));
+ builder.add(
+ "--assetsToIgnore", VectorArg.of(ImmutableList.copyOf(assetsToIgnore)).joinWith(","));
}
if (debug) {
builder.add("--debug");
@@ -487,7 +490,7 @@ public class AndroidResourcesProcessorBuilder {
}
if (dataBindingInfoZip != null) {
- builder.addExecPath("--dataBindingInfoOut", dataBindingInfoZip);
+ builder.add("--dataBindingInfoOut", dataBindingInfoZip);
outs.add(dataBindingInfoZip);
}
@@ -498,12 +501,12 @@ public class AndroidResourcesProcessorBuilder {
}
if (featureOf != null) {
- builder.addExecPath("--featureOf", featureOf);
+ builder.add("--featureOf", featureOf);
inputs.add(featureOf);
}
if (featureAfter != null) {
- builder.addExecPath("--featureAfter", featureAfter);
+ builder.add("--featureAfter", featureAfter);
inputs.add(featureAfter);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
index 441be7ae9a..996523b50e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
@@ -42,6 +42,8 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.WrappingProvider;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.Builder;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.cmdline.Label;
@@ -369,12 +371,13 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
ImmutableList<Artifact> bootclasspath,
NestedSet<Artifact> classpath,
Artifact result) {
- CustomCommandLine args = new CustomCommandLine.Builder()
- .addExecPath("--input", jar)
- .addExecPath("--output", result)
- .addBeforeEachExecPath("--classpath_entry", classpath)
- .addBeforeEachExecPath("--bootclasspath_entry", bootclasspath)
- .build();
+ CustomCommandLine args =
+ new Builder()
+ .add("--input", jar)
+ .add("--output", result)
+ .add(VectorArg.of(classpath).beforeEach("--classpath_entry"))
+ .add(VectorArg.of(bootclasspath).beforeEach("--bootclasspath_entry"))
+ .build();
// Just use params file, since classpaths can get long
Artifact paramFile =
@@ -423,9 +426,9 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
Artifact jar, Set<String> incrementalDexopts, Artifact dexArchive) {
// Write command line arguments into a params file for compatibility with WorkerSpawnStrategy
CustomCommandLine args =
- new CustomCommandLine.Builder()
- .addExecPath("--input_jar", jar)
- .addExecPath("--output_zip", dexArchive)
+ new Builder()
+ .add("--input_jar", jar)
+ .add("--output_zip", dexArchive)
.add(ImmutableList.copyOf(incrementalDexopts))
.build();
Artifact paramFile =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
index 184a8f0c87..d5b332d9e2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/LibraryRGeneratorActionBuilder.java
@@ -76,13 +76,13 @@ public class LibraryRGeneratorActionBuilder {
if (!symbolProviders.isEmpty()) {
ImmutableList<Artifact> symbols =
symbolProviders.stream().map(ResourceContainer::getSymbols).collect(toImmutableList());
- builder.addExecPaths("--symbols", symbols);
+ builder.add("--symbols", symbols);
inputs.addTransitive(NestedSetBuilder.wrap(Order.NAIVE_LINK_ORDER, symbols));
}
- builder.addExecPath("--classJarOutput", rJavaClassJar);
+ builder.add("--classJarOutput", rJavaClassJar);
- builder.addExecPath("--androidJar", sdk.getAndroidJar());
+ builder.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
// Create the spawn action.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
index 52c801437b..e892ae25e3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
@@ -100,7 +100,7 @@ public class ManifestMergerActionBuilder {
.getRunfilesSupport()
.getRunfilesArtifactsWithoutMiddlemen());
- builder.addExecPath("--manifest", manifest);
+ builder.add("--manifest", manifest);
inputs.add(manifest);
if (mergeeManifests != null && !mergeeManifests.isEmpty()) {
@@ -124,11 +124,11 @@ public class ManifestMergerActionBuilder {
builder.add("--customPackage").add(customPackage);
}
- builder.addExecPath("--manifestOutput", manifestOutput);
+ builder.add("--manifestOutput", manifestOutput);
outputs.add(manifestOutput);
if (logOut != null) {
- builder.addExecPath("--log", logOut);
+ builder.add("--log", logOut);
outputs.add(logOut);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
index 3039d68b36..89386d6d0c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -88,11 +89,11 @@ public class RClassGeneratorActionBuilder {
List<Artifact> outs = new ArrayList<>();
if (primary.getRTxt() != null) {
- builder.addExecPath("--primaryRTxt", primary.getRTxt());
+ builder.add("--primaryRTxt", primary.getRTxt());
inputs.add(primary.getRTxt());
}
if (primary.getManifest() != null) {
- builder.addExecPath("--primaryManifest", primary.getManifest());
+ builder.add("--primaryManifest", primary.getManifest());
inputs.add(primary.getManifest());
}
if (!Strings.isNullOrEmpty(primary.getJavaPackage())) {
@@ -102,9 +103,11 @@ public class RClassGeneratorActionBuilder {
// TODO(corysmith): Remove NestedSet as we are already flattening it.
Iterable<ResourceContainer> depResources = dependencies.getResources();
if (!Iterables.isEmpty(depResources)) {
- builder.addBeforeEach(
- "--library",
- ImmutableList.copyOf(Iterables.transform(depResources, chooseDepsToArg(version))));
+ builder.add(
+ VectorArg.of(
+ ImmutableList.copyOf(
+ Iterables.transform(depResources, chooseDepsToArg(version))))
+ .beforeEach("--library"));
inputs.addTransitive(
NestedSetBuilder.wrap(
Order.NAIVE_LINK_ORDER,
@@ -112,7 +115,7 @@ public class RClassGeneratorActionBuilder {
.transformAndConcat(chooseDepsToArtifacts(version))));
}
}
- builder.addExecPath("--classJarOutput", classJarOut);
+ builder.add("--classJarOutput", classJarOut);
outs.add(classJarOut);
// Create the spawn action.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
index 98393b2045..d3d017a931 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainerConverter.java
@@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterators;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
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;
@@ -240,12 +241,18 @@ public class ResourceContainerConverter {
if (dependencies != null) {
if (!dependencies.getTransitiveResources().isEmpty()) {
- cmdBuilder.addJoinValues(
- "--data", toArg.listSeparator(), dependencies.getTransitiveResources(), toArg);
+ cmdBuilder.add(
+ "--data",
+ VectorArg.of(dependencies.getTransitiveResources())
+ .joinWith(toArg.listSeparator())
+ .mapEach(toArg));
}
if (!dependencies.getDirectResources().isEmpty()) {
- cmdBuilder.addJoinValues(
- "--directData", toArg.listSeparator(), dependencies.getDirectResources(), toArg);
+ cmdBuilder.add(
+ "--directData",
+ VectorArg.of(dependencies.getDirectResources())
+ .joinWith(toArg.listSeparator())
+ .mapEach(toArg));
}
// This flattens the nested set. Since each ResourceContainer needs to be transformed into
// Artifacts, and the NestedSetBuilder.wrap doesn't support lazy Iterator evaluation
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index d87b7dbd0d..dd9fea6ea3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.CompilationMode;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
@@ -161,20 +162,22 @@ public class ResourceShrinkerActionBuilder {
.getRunfilesSupport()
.getRunfilesArtifactsWithoutMiddlemen());
- commandLine.addExecPath("--aapt", sdk.getAapt().getExecutable());
+ commandLine.add("--aapt", sdk.getAapt().getExecutable());
- commandLine.addExecPath("--annotationJar", sdk.getAnnotationsJar());
+ commandLine.add("--annotationJar", sdk.getAnnotationsJar());
inputs.add(sdk.getAnnotationsJar());
- commandLine.addExecPath("--androidJar", sdk.getAndroidJar());
+ commandLine.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
if (!uncompressedExtensions.isEmpty()) {
- commandLine.addJoinStrings(
- "--uncompressedExtensions", ",", ImmutableList.copyOf(uncompressedExtensions));
+ commandLine.add(
+ "--uncompressedExtensions",
+ VectorArg.of(ImmutableList.copyOf(uncompressedExtensions)).joinWith(","));
}
if (!assetsToIgnore.isEmpty()) {
- commandLine.addJoinStrings("--assetsToIgnore", ",", ImmutableList.copyOf(assetsToIgnore));
+ commandLine.add(
+ "--assetsToIgnore", VectorArg.of(ImmutableList.copyOf(assetsToIgnore)).joinWith(","));
}
if (ruleContext.getConfiguration().getCompilationMode() != CompilationMode.OPT) {
commandLine.add("--debug");
@@ -191,38 +194,38 @@ public class ResourceShrinkerActionBuilder {
checkNotNull(primaryResources.getManifest());
checkNotNull(resourceApkOut);
- commandLine.addExecPath("--resources", resourceFilesZip);
+ commandLine.add("--resources", resourceFilesZip);
inputs.add(resourceFilesZip);
- commandLine.addExecPath("--shrunkJar", shrunkJar);
+ commandLine.add("--shrunkJar", shrunkJar);
inputs.add(shrunkJar);
- commandLine.addExecPath("--proguardMapping", proguardMapping);
+ commandLine.add("--proguardMapping", proguardMapping);
inputs.add(proguardMapping);
- commandLine.addExecPath("--rTxt", primaryResources.getRTxt());
+ commandLine.add("--rTxt", primaryResources.getRTxt());
inputs.add(primaryResources.getRTxt());
- commandLine.addExecPath("--primaryManifest", primaryResources.getManifest());
+ commandLine.add("--primaryManifest", primaryResources.getManifest());
inputs.add(primaryResources.getManifest());
ImmutableList<Artifact> dependencyManifests = getManifests(dependencyResources);
if (!dependencyManifests.isEmpty()) {
- commandLine.addExecPaths("--dependencyManifest", dependencyManifests);
+ commandLine.add("--dependencyManifest", dependencyManifests);
inputs.addAll(dependencyManifests);
}
ImmutableList<String> resourcePackages =
getResourcePackages(primaryResources, dependencyResources);
- commandLine.addJoinStrings("--resourcePackages", ",", resourcePackages);
+ commandLine.add("--resourcePackages", VectorArg.of(resourcePackages).joinWith(","));
- commandLine.addExecPath("--shrunkResourceApk", resourceApkOut);
+ commandLine.add("--shrunkResourceApk", resourceApkOut);
outputs.add(resourceApkOut);
- commandLine.addExecPath("--shrunkResources", shrunkResourcesOut);
+ commandLine.add("--shrunkResources", shrunkResourcesOut);
outputs.add(shrunkResourcesOut);
- commandLine.addExecPath("--log", logOut);
+ commandLine.add("--log", logOut);
outputs.add(logOut);
ruleContext.registerAction(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
index 0a22bb1da1..17cd13bc9b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -81,22 +82,22 @@ public class RobolectricResourceSymbolsActionBuilder {
List<Artifact> inputs = new ArrayList<>();
- builder.addExecPath("--androidJar", sdk.getAndroidJar());
+ builder.add("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
if (!Iterables.isEmpty(dependencies.getResources())) {
- builder.addJoinValues(
+ builder.add(
"--data",
- RESOURCE_CONTAINER_TO_ARG.listSeparator(),
- dependencies.getResources(),
- RESOURCE_CONTAINER_TO_ARG);
+ VectorArg.of(dependencies.getResources())
+ .joinWith(RESOURCE_CONTAINER_TO_ARG.listSeparator())
+ .mapEach(RESOURCE_CONTAINER_TO_ARG));
}
// This flattens the nested set.
Iterables.addAll(inputs, FluentIterable.from(dependencies.getResources())
.transformAndConcat(RESOURCE_CONTAINER_TO_ARTIFACTS));
- builder.addExecPath("--classJarOutput", classJarOut);
+ builder.add("--classJarOutput", classJarOut);
SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
if (OS.getCurrent() == OS.WINDOWS) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
index e33fd68b86..354cde97bd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
@@ -170,7 +170,7 @@ public class DeployArchiveBuilder {
Compression compress, Artifact launcher) {
CustomCommandLine.Builder args = CustomCommandLine.builder();
- args.addExecPath("--output", outputJar);
+ args.add("--output", outputJar);
if (compress == Compression.COMPRESSED) {
args.add("--compression");
}
@@ -187,7 +187,7 @@ public class DeployArchiveBuilder {
if (buildInfoFiles != null) {
for (Artifact artifact : buildInfoFiles) {
- args.addExecPath("--build_info_file", artifact);
+ args.add("--build_info_file", artifact);
}
}
if (!includeBuildData) {
@@ -198,9 +198,9 @@ public class DeployArchiveBuilder {
args.add(launcher.getExecPathString());
}
- args.addExecPaths("--classpath_resources", classpathResources);
+ args.add("--classpath_resources", classpathResources);
if (runtimeClasspath != null) {
- args.addExecPaths("--sources", ImmutableList.copyOf(runtimeClasspath));
+ args.add("--sources", ImmutableList.copyOf(runtimeClasspath));
}
return args;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
index 3b75c46039..67b9d9202e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
@@ -463,11 +463,11 @@ public final class JavaCompilationHelper {
javaToolchain.getJvmOptions())
.setCommandLine(
CustomCommandLine.builder()
- .addExecPath("--manifest_proto", manifestProto)
- .addExecPath("--class_jar", classJar)
- .addExecPath("--output_jar", genClassJar)
+ .add("--manifest_proto", manifestProto)
+ .add("--class_jar", classJar)
+ .add("--output_jar", genClassJar)
.add("--temp_dir")
- .addPath(tempDir(genClassJar))
+ .add(tempDir(genClassJar))
.build())
.setProgressMessage("Building genclass jar %s", genClassJar.prettyPrint())
.setMnemonic("JavaSourceJar")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index 95ff93b0be..7ded72f2cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -43,6 +43,7 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.CustomMultiArgv;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -424,17 +425,21 @@ public final class JavaCompileAction extends SpawnAction {
checkNotNull(javaBuilderJar);
CustomCommandLine.Builder builder =
- CustomCommandLine.builder().addPath(javaExecutable).add(javaBuilderJvmFlags);
+ CustomCommandLine.builder().add(javaExecutable).add(javaBuilderJvmFlags);
if (!instrumentationJars.isEmpty()) {
builder
- .addJoinExecPaths(
+ .add(
"-cp",
- pathDelimiter,
- ImmutableList.builder().addAll(instrumentationJars).add(javaBuilderJar).build())
+ VectorArg.of(
+ ImmutableList.builder()
+ .addAll(instrumentationJars)
+ .add(javaBuilderJar)
+ .build())
+ .joinWith(pathDelimiter))
.add(javaBuilderMainClass);
} else {
// If there are no instrumentation jars, use simpler '-jar' option to launch JavaBuilder.
- builder.addExecPath("-jar", javaBuilderJar);
+ builder.add("-jar", javaBuilderJar);
}
return builder.build().arguments();
}
@@ -599,10 +604,11 @@ public final class JavaCompileAction extends SpawnAction {
pathSeparator);
// The actual params-file-based command line executed for a compile action.
- CommandLine javaBuilderCommandLine = CustomCommandLine.builder()
- .add(spawnCommandLineBase)
- .addPaths("@%s", paramFile.getExecPath())
- .build();
+ CommandLine javaBuilderCommandLine =
+ CustomCommandLine.builder()
+ .add(spawnCommandLineBase)
+ .addFormatted("@%s", paramFile.getExecPath())
+ .build();
NestedSet<Artifact> tools =
NestedSetBuilder.<Artifact>stableOrder()
@@ -658,37 +664,37 @@ public final class JavaCompileAction extends SpawnAction {
CustomCommandLine.Builder result = CustomCommandLine.builder();
- result.add("--classdir").addPath(classDirectory);
- result.add("--tempdir").addPath(tempDirectory);
+ result.add("--classdir").add(classDirectory);
+ result.add("--tempdir").add(tempDirectory);
if (outputJar != null) {
- result.addExecPath("--output", outputJar);
+ result.add("--output", outputJar);
}
if (sourceGenDirectory != null) {
- result.add("--sourcegendir").addPath(sourceGenDirectory);
+ result.add("--sourcegendir").add(sourceGenDirectory);
}
if (gensrcOutputJar != null) {
- result.addExecPath("--generated_sources_output", gensrcOutputJar);
+ result.add("--generated_sources_output", gensrcOutputJar);
}
if (manifestProtoOutput != null) {
- result.addExecPath("--output_manifest_proto", manifestProtoOutput);
+ result.add("--output_manifest_proto", manifestProtoOutput);
}
if (compressJar) {
result.add("--compress_jar");
}
if (outputDepsProto != null) {
- result.addExecPath("--output_deps_proto", outputDepsProto);
+ result.add("--output_deps_proto", outputDepsProto);
}
if (!extdirInputs.isEmpty()) {
- result.addExecPaths("--extclasspath", extdirInputs);
+ result.add("--extclasspath", extdirInputs);
}
if (!bootclasspathEntries.isEmpty()) {
- result.addExecPaths("--bootclasspath", bootclasspathEntries);
+ result.add("--bootclasspath", bootclasspathEntries);
}
if (!sourcePathEntries.isEmpty()) {
- result.addExecPaths("--sourcepath", sourcePathEntries);
+ result.add("--sourcepath", sourcePathEntries);
}
if (!processorPath.isEmpty()) {
- result.addExecPaths("--processorpath", processorPath);
+ result.add("--processorpath", processorPath);
}
if (!processorNames.isEmpty()) {
result.add("--processors", ImmutableList.copyOf(processorNames));
@@ -697,10 +703,10 @@ public final class JavaCompileAction extends SpawnAction {
result.add("--javacopts", ImmutableList.copyOf(processorFlags));
}
if (!sourceJars.isEmpty()) {
- result.addExecPaths("--source_jars", ImmutableList.copyOf(sourceJars));
+ result.add("--source_jars", ImmutableList.copyOf(sourceJars));
}
if (!sourceFiles.isEmpty()) {
- result.addExecPaths("--sources", sourceFiles);
+ result.add("--sources", sourceFiles);
}
if (!javacOpts.isEmpty()) {
result.add("--javacopts", ImmutableList.copyOf(javacOpts));
@@ -725,7 +731,7 @@ public final class JavaCompileAction extends SpawnAction {
}
if (!classpathEntries.isEmpty()) {
- result.addExecPaths("--classpath", classpathEntries);
+ result.add("--classpath", classpathEntries);
}
// strict_java_deps controls whether the mapping from jars to targets is
@@ -740,14 +746,14 @@ public final class JavaCompileAction extends SpawnAction {
result.add("--reduce_classpath");
if (!compileTimeDependencyArtifacts.isEmpty()) {
- result.addExecPaths("--deps_artifacts", compileTimeDependencyArtifacts);
+ result.add("--deps_artifacts", compileTimeDependencyArtifacts);
}
}
}
if (metadata != null) {
result.add("--post_processor");
- result.addExecPath(JACOCO_INSTRUMENTATION_PROCESSOR, metadata);
- result.addPath(
+ result.add(JACOCO_INSTRUMENTATION_PROCESSOR, metadata);
+ result.add(
configuration
.getCoverageMetadataDirectory(targetLabel.getPackageIdentifier().getRepository())
.getExecPath());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
index e7ccb8df35..016ad43967 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
@@ -421,7 +421,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
ParameterFile.ParameterFileType.UNQUOTED,
ISO_8859_1);
CommandLine transitiveCommandLine =
- getBaseArgs(javaToolchain).addPaths("@%s", paramsFile.getExecPath()).build();
+ getBaseArgs(javaToolchain).addFormatted("@%s", paramsFile.getExecPath()).build();
NestedSet<Artifact> transitiveInputs =
NestedSetBuilder.<Artifact>stableOrder()
.addTransitive(baseInputs)
@@ -503,10 +503,10 @@ public class JavaHeaderCompileAction extends SpawnAction {
private CustomCommandLine.Builder getBaseArgs(JavaToolchainProvider javaToolchain) {
return CustomCommandLine.builder()
- .addPath(JavaCommon.getHostJavaExecutable(ruleContext))
+ .add(JavaCommon.getHostJavaExecutable(ruleContext))
.add("-Xverify:none")
.add(javaToolchain.getJvmOptions())
- .addExecPath("-jar", javaToolchain.getHeaderCompiler());
+ .add("-jar", javaToolchain.getHeaderCompiler());
}
/**
@@ -515,20 +515,20 @@ public class JavaHeaderCompileAction extends SpawnAction {
*/
private CustomCommandLine.Builder baseCommandLine(
CustomCommandLine.Builder result, NestedSet<Artifact> classpathEntries) {
- result.addExecPath("--output", outputJar);
+ result.add("--output", outputJar);
if (outputDepsProto != null) {
- result.addExecPath("--output_deps", outputDepsProto);
+ result.add("--output_deps", outputDepsProto);
}
- result.add("--temp_dir").addPath(tempDirectory);
+ result.add("--temp_dir").add(tempDirectory);
- result.addExecPaths("--bootclasspath", bootclasspathEntries);
+ result.add("--bootclasspath", bootclasspathEntries);
- result.addExecPaths("--sources", sourceFiles);
+ result.add("--sources", sourceFiles);
if (!sourceJars.isEmpty()) {
- result.addExecPaths("--source_jars", ImmutableList.copyOf(sourceJars));
+ result.add("--source_jars", ImmutableList.copyOf(sourceJars));
}
result.add("--javacopts", javacOpts);
@@ -548,7 +548,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
result.addWithPrefix("@", targetLabel);
}
}
- result.addExecPaths("--classpath", classpathEntries);
+ result.add("--classpath", classpathEntries);
return result;
}
@@ -563,12 +563,12 @@ public class JavaHeaderCompileAction extends SpawnAction {
result.add("--javacopts", ImmutableList.copyOf(processorFlags));
}
if (!processorPath.isEmpty()) {
- result.addExecPaths("--processorpath", processorPath);
+ result.add("--processorpath", processorPath);
}
if (strictJavaDeps != BuildConfiguration.StrictDepsMode.OFF) {
result.add(new JavaCompileAction.JarsToTargetsArgv(classpathEntries, directJars));
if (!compileTimeDependencyArtifacts.isEmpty()) {
- result.addExecPaths("--deps_artifacts", compileTimeDependencyArtifacts);
+ result.add("--deps_artifacts", compileTimeDependencyArtifacts);
}
}
return result.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
index c4de56da51..57ff2e2ae5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
@@ -89,8 +89,8 @@ public final class OneVersionCheckActionBuilder {
CustomCommandLine.Builder oneVersionArgsBuilder =
CustomCommandLine.builder()
- .addExecPath("--output", outputArtifact)
- .addExecPath("--whitelist", oneVersionWhitelist);
+ .add("--output", outputArtifact)
+ .add("--whitelist", oneVersionWhitelist);
if (enforcementLevel == OneVersionEnforcementLevel.WARNING) {
oneVersionArgsBuilder.add("--succeed_on_found_violations");
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ResourceJarActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/ResourceJarActionBuilder.java
index e8902f49ec..cc2aaf6822 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ResourceJarActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ResourceJarActionBuilder.java
@@ -104,9 +104,9 @@ public class ResourceJarActionBuilder {
.add("--normalize")
.add("--dont_change_compression")
.add("--exclude_build_data")
- .addExecPath("--output", outputJar);
+ .add("--output", outputJar);
if (!resourceJars.isEmpty()) {
- command.addExecPaths("--sources", resourceJars);
+ command.add("--sources", resourceJars);
}
if (!resources.isEmpty() || !messages.isEmpty()) {
command.add("--resources");
@@ -119,7 +119,7 @@ public class ResourceJarActionBuilder {
}
}
if (!classpathResources.isEmpty()) {
- command.addExecPaths("--classpath_resources", classpathResources);
+ command.add("--classpath_resources", classpathResources);
}
// TODO(b/37444705): remove this logic and always call useParameterFile once the bug is fixed
// Most resource jar actions are very small and expanding the argument list for
@@ -153,9 +153,9 @@ public class ResourceJarActionBuilder {
PathFragment resourcePath, Artifact artifact, CustomCommandLine.Builder builder) {
PathFragment execPath = artifact.getExecPath();
if (execPath.equals(resourcePath)) {
- builder.addPaths("%s", resourcePath);
+ builder.addFormatted("%s", resourcePath);
} else {
- builder.addPaths("%s:%s", execPath, resourcePath);
+ builder.addFormatted("%s:%s", execPath, resourcePath);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
index fffeb69549..10a06eae07 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
@@ -92,13 +92,13 @@ public final class SingleJarActionBuilder {
private static CommandLine sourceJarCommandLine(Artifact outputJar,
Map<PathFragment, Artifact> resources, Iterable<Artifact> resourceJars) {
CustomCommandLine.Builder args = CustomCommandLine.builder();
- args.addExecPath("--output", outputJar);
+ args.add("--output", outputJar);
args.add(SOURCE_JAR_COMMAND_LINE_ARGS);
- args.addExecPaths("--sources", ImmutableList.copyOf(resourceJars));
+ args.add("--sources", ImmutableList.copyOf(resourceJars));
if (!resources.isEmpty()) {
args.add("--resources");
for (Map.Entry<PathFragment, Artifact> resource : resources.entrySet()) {
- args.addPaths("%s:%s", resource.getValue().getExecPath(), resource.getKey());
+ args.addFormatted("%s:%s", resource.getValue().getExecPath(), resource.getKey());
}
}
return args.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java
index 49c8636f52..493f6f5f26 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.Builder;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
@@ -152,10 +153,10 @@ public class AppleStubBinary implements RuleConfiguredTargetFactory {
Artifact outputBinary)
throws RuleErrorException {
CustomCommandLine copyCommandLine =
- new CustomCommandLine.Builder()
+ new Builder()
.add("/bin/cp")
.add(resolveXcenvBasedPath(ruleContext, platform))
- .addExecPaths(ImmutableList.of(outputBinary))
+ .add(ImmutableList.of(outputBinary))
.build();
ruleContext.registerAction(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
index b353ad1d6b..179095a7bc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
@@ -267,8 +267,7 @@ final class BundleSupport {
Artifact storyboardInput) {
CustomCommandLine.Builder commandLine =
CustomCommandLine.builder()
- // The next three arguments are positional, i.e. they don't have flags before them.
- .addPath(zipOutput.getExecPath())
+ .add(zipOutput.getExecPath())
.add(archiveRoot)
.add("--minimum-deployment-target")
.add(bundling.getMinimumOsVersion().toString())
@@ -279,9 +278,7 @@ final class BundleSupport {
commandLine.add("--target-device").add(targetDeviceFamily.name().toLowerCase(Locale.US));
}
- return commandLine
- .addPath(storyboardInput.getExecPath())
- .build();
+ return commandLine.add(storyboardInput.getExecPath()).build();
}
private void registerMomczipActions(ObjcProvider objcProvider) {
@@ -295,17 +292,20 @@ final class BundleSupport {
.setExecutable(attributes.momcWrapper())
.addOutput(outputZip)
.addInputs(datamodel.getInputs())
- .setCommandLine(CustomCommandLine.builder()
- .addPath(outputZip.getExecPath())
- .add(datamodel.archiveRootForMomczip())
- .add("-XD_MOMC_SDKROOT=" + AppleToolchain.sdkDir())
- .add("-XD_MOMC_IOS_TARGET_VERSION=" + bundling.getMinimumOsVersion())
- .add("-MOMC_PLATFORMS")
- .add(appleConfiguration.getMultiArchPlatform(PlatformType.IOS)
- .getLowerCaseNameInPlist())
- .add("-XD_MOMC_TARGET_VERSION=10.6")
- .add(datamodel.getContainer().getSafePathString())
- .build())
+ .setCommandLine(
+ CustomCommandLine.builder()
+ .add(outputZip.getExecPath())
+ .add(datamodel.archiveRootForMomczip())
+ .add("-XD_MOMC_SDKROOT=" + AppleToolchain.sdkDir())
+ .add("-XD_MOMC_IOS_TARGET_VERSION=" + bundling.getMinimumOsVersion())
+ .add("-MOMC_PLATFORMS")
+ .add(
+ appleConfiguration
+ .getMultiArchPlatform(PlatformType.IOS)
+ .getLowerCaseNameInPlist())
+ .add("-XD_MOMC_TARGET_VERSION=10.6")
+ .add(datamodel.getContainer().getSafePathString())
+ .build())
.build(ruleContext));
}
}
@@ -336,12 +336,14 @@ final class BundleSupport {
ObjcRuleClasses.spawnAppleEnvActionBuilder(appleConfiguration, platform)
.setMnemonic("ConvertStringsPlist")
.setExecutable(PathFragment.create("/usr/bin/plutil"))
- .setCommandLine(CustomCommandLine.builder()
- .add("-convert").add("binary1")
- .addExecPath("-o", bundled)
- .add("--")
- .addPath(strings.getExecPath())
- .build())
+ .setCommandLine(
+ CustomCommandLine.builder()
+ .add("-convert")
+ .add("binary1")
+ .add("-o", bundled)
+ .add("--")
+ .add(strings.getExecPath())
+ .build())
.addInput(strings)
.addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
.addOutput(bundled)
@@ -434,12 +436,10 @@ final class BundleSupport {
}
CustomCommandLine.Builder commandLine =
CustomCommandLine.builder()
- // The next three arguments are positional, i.e. they don't have flags before them.
- .addPath(zipOutput.getExecPath())
+ .add(zipOutput.getExecPath())
.add("--platform")
- .add(appleConfiguration.getMultiArchPlatform(platformType)
- .getLowerCaseNameInPlist())
- .addExecPath("--output-partial-info-plist", partialInfoPlist)
+ .add(appleConfiguration.getMultiArchPlatform(platformType).getLowerCaseNameInPlist())
+ .add("--output-partial-info-plist", partialInfoPlist)
.add("--minimum-deployment-target")
.add(bundling.getMinimumOsVersion().toString());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
index 76c67e9c6c..e6043f1fc8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
@@ -56,6 +56,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -882,7 +883,7 @@ public abstract class CompilationSupport {
treeObjFiles.add(objFile);
objFilesToLinkParam.addExpandedTreeArtifactExecPaths(objFile);
} else {
- objFilesToLinkParam.addPath(objFile.getExecPath());
+ objFilesToLinkParam.add(objFile.getExecPath());
}
}
@@ -1074,14 +1075,17 @@ public abstract class CompilationSupport {
CustomCommandLine commandLine =
CustomCommandLine.builder()
- .addExecPath("--input_archive", j2objcArchive)
- .addExecPath("--output_archive", prunedJ2ObjcArchive)
- .addExecPath("--dummy_archive", dummyArchive)
- .addExecPath("--xcrunwrapper", xcrunwrapper(ruleContext).getExecutable())
- .addJoinExecPaths("--dependency_mapping_files", ",", j2ObjcDependencyMappingFiles)
- .addJoinExecPaths("--header_mapping_files", ",", j2ObjcHeaderMappingFiles)
- .addJoinExecPaths(
- "--archive_source_mapping_files", ",", j2ObjcArchiveSourceMappingFiles)
+ .add("--input_archive", j2objcArchive)
+ .add("--output_archive", prunedJ2ObjcArchive)
+ .add("--dummy_archive", dummyArchive)
+ .add("--xcrunwrapper", xcrunwrapper(ruleContext).getExecutable())
+ .add(
+ "--dependency_mapping_files",
+ VectorArg.of(j2ObjcDependencyMappingFiles).joinWith(","))
+ .add("--header_mapping_files", VectorArg.of(j2ObjcHeaderMappingFiles).joinWith(","))
+ .add(
+ "--archive_source_mapping_files",
+ VectorArg.of(j2ObjcArchiveSourceMappingFiles).joinWith(","))
.add("--entry_classes")
.add(Joiner.on(",").join(entryClasses))
.build();
@@ -1107,7 +1111,7 @@ public abstract class CompilationSupport {
.addTransitiveInputs(j2ObjcHeaderMappingFiles)
.addTransitiveInputs(j2ObjcArchiveSourceMappingFiles)
.setCommandLine(
- CustomCommandLine.builder().addPaths("@%s", paramFile.getExecPath()).build())
+ CustomCommandLine.builder().addFormatted("@%s", paramFile.getExecPath()).build())
.addOutput(prunedJ2ObjcArchive)
.build(ruleContext));
}
@@ -1165,8 +1169,8 @@ public abstract class CompilationSupport {
return CustomCommandLine.builder()
.add(STRIP)
.add(extraFlags)
- .addExecPath("-o", strippedArtifact)
- .addPath(unstrippedArtifact.getExecPath())
+ .add("-o", strippedArtifact)
+ .add(unstrippedArtifact.getExecPath())
.build();
}
@@ -1393,8 +1397,11 @@ public abstract class CompilationSupport {
.add(XcodeConfig.getXcodeVersion(ruleContext).toStringWithMinimumComponents(2))
.add("--");
for (ObjcHeaderThinningInfo info : infos) {
- cmdLine.addJoinPaths(
- ":", ImmutableList.of(info.sourceFile.getExecPath(), info.headersListFile.getExecPath()));
+ cmdLine.add(
+ VectorArg.of(
+ ImmutableList.of(
+ info.sourceFile.getExecPath(), info.headersListFile.getExecPath()))
+ .joinWith(":"));
builder.addInput(info.sourceFile).addOutput(info.headersListFile);
}
ruleContext.registerAction(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
index 1c17394a30..af346447c2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -481,18 +482,18 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
argBuilder.add("--java").add(javaExecutable.getPathString());
Artifact j2ObjcDeployJar = ruleContext.getPrerequisiteArtifact("$j2objc", Mode.HOST);
- argBuilder.addExecPath("--j2objc", j2ObjcDeployJar);
+ argBuilder.add("--j2objc", j2ObjcDeployJar);
argBuilder.add("--main_class").add("com.google.devtools.j2objc.J2ObjC");
- argBuilder.add("--objc_file_path").addPath(j2ObjcSource.getObjcFilePath());
+ argBuilder.add("--objc_file_path").add(j2ObjcSource.getObjcFilePath());
Artifact outputDependencyMappingFile = j2ObjcOutputDependencyMappingFile(ruleContext);
- argBuilder.addExecPath("--output_dependency_mapping_file", outputDependencyMappingFile);
+ argBuilder.add("--output_dependency_mapping_file", outputDependencyMappingFile);
ImmutableList.Builder<Artifact> sourceJarOutputFiles = ImmutableList.builder();
if (!Iterables.isEmpty(sourceJars)) {
sourceJarOutputFiles.addAll(sourceJarOutputs(ruleContext));
- argBuilder.addJoinExecPaths("--src_jars", ",", ImmutableList.copyOf(sourceJars));
+ argBuilder.add("--src_jars", VectorArg.of(ImmutableList.copyOf(sourceJars)).joinWith(","));
argBuilder.add(sourceJarFlags(ruleContext));
}
@@ -504,44 +505,44 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> depsHeaderMappingFiles =
depJ2ObjcMappingFileProvider.getHeaderMappingFiles();
if (!depsHeaderMappingFiles.isEmpty()) {
- argBuilder.addJoinExecPaths("--header-mapping", ",", depsHeaderMappingFiles);
+ argBuilder.add("--header-mapping", VectorArg.of(depsHeaderMappingFiles).joinWith(","));
}
boolean experimentalJ2ObjcHeaderMap =
ruleContext.getFragment(J2ObjcConfiguration.class).experimentalJ2ObjcHeaderMap();
Artifact outputHeaderMappingFile = j2ObjcOutputHeaderMappingFile(ruleContext);
if (!experimentalJ2ObjcHeaderMap) {
- argBuilder.addExecPath("--output-header-mapping", outputHeaderMappingFile);
+ argBuilder.add("--output-header-mapping", outputHeaderMappingFile);
}
NestedSet<Artifact> depsClassMappingFiles = depJ2ObjcMappingFileProvider.getClassMappingFiles();
if (!depsClassMappingFiles.isEmpty()) {
- argBuilder.addJoinExecPaths("--mapping", ",", depsClassMappingFiles);
+ argBuilder.add("--mapping", VectorArg.of(depsClassMappingFiles).joinWith(","));
}
Artifact archiveSourceMappingFile = j2ObjcOutputArchiveSourceMappingFile(ruleContext);
- argBuilder.addExecPath("--output_archive_source_mapping_file", archiveSourceMappingFile);
+ argBuilder.add("--output_archive_source_mapping_file", archiveSourceMappingFile);
Artifact compiledLibrary = ObjcRuleClasses.j2objcIntermediateArtifacts(ruleContext).archive();
- argBuilder.addExecPath("--compiled_archive_file_path", compiledLibrary);
+ argBuilder.add("--compiled_archive_file_path", compiledLibrary);
Artifact bootclasspathJar = ruleContext.getPrerequisiteArtifact("$jre_emul_jar", Mode.HOST);
argBuilder.add("-Xbootclasspath:" + bootclasspathJar.getExecPathString());
Artifact deadCodeReport = ruleContext.getPrerequisiteArtifact(":dead_code_report", Mode.HOST);
if (deadCodeReport != null) {
- argBuilder.addExecPath("--dead-code-report", deadCodeReport);
+ argBuilder.add("--dead-code-report", deadCodeReport);
}
- argBuilder.add("-d").addPath(j2ObjcSource.getObjcFilePath());
+ argBuilder.add("-d").add(j2ObjcSource.getObjcFilePath());
NestedSet<Artifact> compileTimeJars =
compArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
if (!compileTimeJars.isEmpty()) {
- argBuilder.addJoinExecPaths("-classpath", ":", compileTimeJars);
+ argBuilder.add("-classpath", VectorArg.of(compileTimeJars).joinWith(":"));
}
- argBuilder.addExecPaths(ImmutableList.copyOf(sources));
+ argBuilder.add(ImmutableList.copyOf(sources));
Artifact paramFile = j2ObjcOutputParamFile(ruleContext);
ruleContext.registerAction(new ParameterFileWriteAction(
@@ -566,7 +567,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
.addTransitiveInputs(depsClassMappingFiles)
.addInput(paramFile)
.setCommandLine(
- CustomCommandLine.builder().addPaths("@%s", paramFile.getExecPath()).build())
+ CustomCommandLine.builder().addFormatted("@%s", paramFile.getExecPath()).build())
.addOutputs(j2ObjcSource.getObjcSrcs())
.addOutputs(j2ObjcSource.getObjcHdrs())
.addOutput(outputDependencyMappingFile)
@@ -584,13 +585,14 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
if (experimentalJ2ObjcHeaderMap) {
CustomCommandLine.Builder headerMapCommandLine = CustomCommandLine.builder();
if (!Iterables.isEmpty(sources)) {
- headerMapCommandLine.addJoinExecPaths("--source_files", ",", ImmutableList.copyOf(sources));
+ headerMapCommandLine.add(
+ "--source_files", VectorArg.of(ImmutableList.copyOf(sources)).joinWith(","));
}
if (!Iterables.isEmpty(sourceJars)) {
- headerMapCommandLine.addJoinExecPaths(
- "--source_jars", ",", ImmutableList.copyOf(sourceJars));
+ headerMapCommandLine.add(
+ "--source_jars", VectorArg.of(ImmutableList.copyOf(sourceJars)).joinWith(","));
}
- headerMapCommandLine.addExecPath("--output_mapping_file", outputHeaderMappingFile);
+ headerMapCommandLine.add("--output_mapping_file", outputHeaderMappingFile);
ruleContext.registerAction(new SpawnAction.Builder()
.setMnemonic("GenerateJ2objcHeaderMap")
.setExecutable(ruleContext.getPrerequisiteArtifact("$j2objc_header_map", Mode.HOST))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
index 0329afa5b3..56f171cc34 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java
@@ -50,6 +50,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate;
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate.OutputPathMapper;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -302,14 +303,15 @@ public class LegacyCompilationSupport extends CompilationSupport {
.add(ImmutableList.copyOf(compileFlagsForClang(appleConfiguration)))
.add(commonLinkAndCompileFlagsForClang(objcProvider, objcConfiguration, appleConfiguration))
.add(objcConfiguration.getCoptsForCompilationMode())
- .addBeforeEachPath(
- "-iquote", ObjcCommon.userHeaderSearchPaths(objcProvider, buildConfiguration))
- .addBeforeEachExecPath("-include", ImmutableList.copyOf(pchFile.asSet()))
- .addBeforeEachPath("-I", ImmutableList.copyOf(priorityHeaders))
- .addBeforeEachPath("-I", objcProvider.get(INCLUDE))
- .addBeforeEachPath("-isystem", objcProvider.get(INCLUDE_SYSTEM))
+ .add(
+ VectorArg.of(ObjcCommon.userHeaderSearchPaths(objcProvider, buildConfiguration))
+ .beforeEach("-iquote"))
+ .add(VectorArg.of(ImmutableList.copyOf(pchFile.asSet())).beforeEach("-include"))
+ .add(VectorArg.of(ImmutableList.copyOf(priorityHeaders)).beforeEach("-I"))
+ .add(VectorArg.of(objcProvider.get(INCLUDE)).beforeEach("-I"))
+ .add(VectorArg.of(objcProvider.get(INCLUDE_SYSTEM)).beforeEach("-isystem"))
.add(ImmutableList.copyOf(otherFlags))
- .addFormatEach("-D%s", objcProvider.get(DEFINE))
+ .add(VectorArg.of(objcProvider.get(DEFINE)).formatEach("-D%s"))
.add(coverageFlags)
.add(ImmutableList.copyOf(getCompileRuleCopts()));
@@ -318,7 +320,7 @@ public class LegacyCompilationSupport extends CompilationSupport {
if (sourceFile.isTreeArtifact()) {
commandLine.addPlaceholderTreeArtifactExecPath(sourceFile);
} else {
- commandLine.addPath(sourceFile.getExecPath());
+ commandLine.add(sourceFile.getExecPath());
}
// Add output object file arguments.
@@ -326,12 +328,12 @@ public class LegacyCompilationSupport extends CompilationSupport {
if (objFile.isTreeArtifact()) {
commandLine.addPlaceholderTreeArtifactExecPath(objFile);
} else {
- commandLine.addPath(objFile.getExecPath());
+ commandLine.add(objFile.getExecPath());
}
// Add Dotd file arguments.
if (dotdFile.isPresent()) {
- commandLine.add("-MD").addExecPath("-MF", dotdFile.get());
+ commandLine.add("-MD").add("-MF", dotdFile.get());
}
// Add module map arguments.
@@ -535,7 +537,7 @@ public class LegacyCompilationSupport extends CompilationSupport {
.add(AppleToolchain.sdkDir())
.add("-o")
.add(outputArchive.getExecPathString())
- .addExecPaths(ImmutableList.copyOf(inputArtifacts))
+ .add(ImmutableList.copyOf(inputArtifacts))
.build())
.addInputs(inputArtifacts)
.addOutput(outputArchive)
@@ -665,8 +667,8 @@ public class LegacyCompilationSupport extends CompilationSupport {
Optional<Artifact> bitcodeSymbolMap) {
ImmutableList<String> libraryNames = libraryNames(objcProvider);
- CustomCommandLine.Builder commandLine = CustomCommandLine.builder()
- .addPath(xcrunwrapper(ruleContext).getExecutable().getExecPath());
+ CustomCommandLine.Builder commandLine =
+ CustomCommandLine.builder().add(xcrunwrapper(ruleContext).getExecutable().getExecPath());
if (objcProvider.is(USES_CPP)) {
commandLine
.add(CLANG_PLUSPLUS)
@@ -727,11 +729,15 @@ public class LegacyCompilationSupport extends CompilationSupport {
.add("@executable_path/Frameworks")
.add("-fobjc-link-runtime")
.add(DEFAULT_LINKER_FLAGS)
- .addBeforeEach("-framework", ImmutableList.copyOf(frameworkNames(objcProvider)))
- .addBeforeEach("-weak_framework", SdkFramework.names(objcProvider.get(WEAK_SDK_FRAMEWORK)))
- .addFormatEach("-l%s", libraryNames)
- .addExecPath("-o", linkedBinary)
- .addBeforeEachExecPath("-force_load", forceLinkArtifacts)
+ .add(
+ VectorArg.of(ImmutableList.copyOf(frameworkNames(objcProvider)))
+ .beforeEach("-framework"))
+ .add(
+ VectorArg.of(SdkFramework.names(objcProvider.get(WEAK_SDK_FRAMEWORK)))
+ .beforeEach("-weak_framework"))
+ .add(VectorArg.of(libraryNames).formatEach("-l%s"))
+ .add("-o", linkedBinary)
+ .add(VectorArg.of(forceLinkArtifacts).beforeEach("-force_load"))
.add(ImmutableList.copyOf(extraLinkArgs))
.add(objcProvider.get(ObjcProvider.LINKOPT));
@@ -761,7 +767,7 @@ public class LegacyCompilationSupport extends CompilationSupport {
PathFragment dsymPath = FileSystemUtils.removeExtension(dsymBundleZip.get().getExecPath());
commandLine
.add("&&")
- .addPath(xcrunwrapper(ruleContext).getExecutable().getExecPath())
+ .add(xcrunwrapper(ruleContext).getExecutable().getExecPath())
.add(DSYMUTIL)
.add(linkedBinary.getExecPathString())
.add("-o " + dsymPath)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java
index 41487ecc43..762137f685 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java
@@ -46,18 +46,20 @@ public class LipoSupport {
public LipoSupport registerCombineArchitecturesAction(
NestedSet<Artifact> inputBinaries, Artifact outputBinary, ApplePlatform platform) {
if (inputBinaries.toList().size() > 1) {
- ruleContext.registerAction(ObjcRuleClasses.spawnAppleEnvActionBuilder(
- ruleContext.getFragment(AppleConfiguration.class), platform)
- .setMnemonic("ObjcCombiningArchitectures")
- .addTransitiveInputs(inputBinaries)
- .addOutput(outputBinary)
- .setExecutable(CompilationSupport.xcrunwrapper(ruleContext))
- .setCommandLine(CustomCommandLine.builder()
- .add(ObjcRuleClasses.LIPO)
- .addExecPaths("-create", inputBinaries)
- .addExecPath("-o", outputBinary)
- .build())
- .build(ruleContext));
+ ruleContext.registerAction(
+ ObjcRuleClasses.spawnAppleEnvActionBuilder(
+ ruleContext.getFragment(AppleConfiguration.class), platform)
+ .setMnemonic("ObjcCombiningArchitectures")
+ .addTransitiveInputs(inputBinaries)
+ .addOutput(outputBinary)
+ .setExecutable(CompilationSupport.xcrunwrapper(ruleContext))
+ .setCommandLine(
+ CustomCommandLine.builder()
+ .add(ObjcRuleClasses.LIPO)
+ .add("-create", inputBinaries)
+ .add("-o", outputBinary)
+ .build())
+ .build(ruleContext));
} else {
ruleContext.registerAction(new SymlinkAction(
ruleContext.getActionOwner(),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
index fb1a75fdfb..08e595f8a0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
@@ -27,6 +27,8 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.Builder;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -494,7 +496,7 @@ final class ProtobufSupport {
}
private CustomCommandLine getGenerationCommandLine(Artifact protoInputsFile) {
- return new CustomCommandLine.Builder()
+ return new Builder()
.add("--input-file-list")
.add(protoInputsFile.getExecPathString())
.add("--output-dir")
@@ -504,7 +506,7 @@ final class ProtobufSupport {
.add(getGenfilesPathString())
.add("--proto-root-dir")
.add(".")
- .addBeforeEachExecPath("--config", portableProtoFilters)
+ .add(VectorArg.of(portableProtoFilters).beforeEach("--config"))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index 4071bfb214..0f12eba57a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -1029,12 +1029,12 @@ public final class ReleaseBundlingSupport {
commandLine
.add("--output_zip_path")
- .addPath(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
+ .add(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
.add("--bundle_path")
.add("Frameworks")
.add("--platform")
.add(platform.getLowerCaseNameInPlist())
- .addExecPath("--scan-executable", combinedArchBinary);
+ .add("--scan-executable", combinedArchBinary);
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(appleConfiguration, platform)
@@ -1061,12 +1061,12 @@ public final class ReleaseBundlingSupport {
commandLine
.add("--output_zip_path")
- .addPath(intermediateArtifacts.swiftSupportZip().getExecPath())
+ .add(intermediateArtifacts.swiftSupportZip().getExecPath())
.add("--bundle_path")
.add("SwiftSupport/" + platform.getLowerCaseNameInPlist())
.add("--platform")
.add(platform.getLowerCaseNameInPlist())
- .addExecPath("--scan-executable", combinedArchBinary);
+ .add("--scan-executable", combinedArchBinary);
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(configuration, platform)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
index 29c804fef8..1f93fbf85e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
@@ -296,7 +296,7 @@ public class ProtoCompileActionBuilder {
Preconditions.checkArgument(langPluginParameter1 != null);
// We pass a separate langPluginName as there are plugins that cannot be overridden
// and thus we have to deal with "$xx_plugin" and "xx_plugin".
- result.addFormat(
+ result.addFormatted(
"--plugin=protoc-gen-%s=%s", langPrefix, langPluginTarget.getExecutable().getExecPath());
result.add(new LazyLangPluginFlag(langPrefix, langPluginParameter1));
}
@@ -314,11 +314,11 @@ public class ProtoCompileActionBuilder {
if (areDepsStrict) {
// Note: the %s in the line below is used by proto-compiler. That is, the string we create
// here should have a literal %s in it.
- result.addFormat(STRICT_DEPS_FLAG_TEMPLATE, ruleContext.getLabel());
+ result.addFormatted(STRICT_DEPS_FLAG_TEMPLATE, ruleContext.getLabel());
}
for (Artifact src : supportData.getDirectProtoSources()) {
- result.addPath(src.getRootRelativePath());
+ result.add(src.getRootRelativePath());
}
if (!hasServices) {
@@ -580,7 +580,7 @@ public class ProtoCompileActionBuilder {
String.format("PLUGIN_%s_out", invocation.name))));
if (toolchain.pluginExecutable() != null) {
- cmdLine.addFormat(
+ cmdLine.addFormatted(
"--plugin=protoc-gen-PLUGIN_%s=%s",
invocation.name, toolchain.pluginExecutable().getExecutable().getExecPath());
}
@@ -592,11 +592,11 @@ public class ProtoCompileActionBuilder {
cmdLine.add(new ProtoCommandLineArgv(protosInDirectDeps, transitiveSources));
if (protosInDirectDeps != null) {
- cmdLine.addFormat(STRICT_DEPS_FLAG_TEMPLATE, ruleLabel);
+ cmdLine.addFormatted(STRICT_DEPS_FLAG_TEMPLATE, ruleLabel);
}
for (Artifact src : protosToCompile) {
- cmdLine.addPath(src.getExecPath());
+ cmdLine.add(src.getExecPath());
}
if (!allowServices) {