aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java7
-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/AndroidResourceValidatorActionBuilder.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java9
-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.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java24
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java23
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java56
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java6
20 files changed, 100 insertions, 145 deletions
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 1beadb87b7..c6f99e0cef 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,7 +46,6 @@ 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;
@@ -1342,7 +1341,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
CommandLine mergeCommandLine =
CustomCommandLine.builder()
- .addExecPaths(VectorArg.of(shardDexes).beforeEach("--input_zip"))
+ .addBeforeEachExecPath("--input_zip", shardDexes)
.addExecPath("--output_zip", classesDex)
.build();
ruleContext.registerAction(
@@ -1566,7 +1565,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
CustomCommandLine.Builder shardCommandLine =
CustomCommandLine.builder()
- .addExecPaths(VectorArg.of(shards).beforeEach("--output_jar"))
+ .addBeforeEachExecPath("--output_jar", shards)
.addExecPath("--output_resources", javaResourceJar);
if (mainDexList != null) {
@@ -1621,7 +1620,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
} else {
classpath = classpath.stream().map(derivedJarFunction::apply).collect(toImmutableList());
}
- shardCommandLine.addExecPaths(VectorArg.of(classpath).beforeEach("--input_jar"));
+ shardCommandLine.addBeforeEachExecPath("--input_jar", classpath);
shardAction.addInputs(classpath);
if (inclusionFilterJar != null) {
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 bac612c6c1..c28b32e0ae 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,7 +34,6 @@ 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;
@@ -241,14 +240,12 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
CustomCommandLine.Builder cmdLineArgs = CustomCommandLine.builder();
if (!transitiveAars.isEmpty()) {
- cmdLineArgs.add(
- "--android_libraries",
- VectorArg.of(transitiveAars).joinWith(",").mapEach(AndroidLocalTestBase::aarCmdLineArg));
+ cmdLineArgs.addJoined(
+ "--android_libraries", ",", transitiveAars, AndroidLocalTestBase::aarCmdLineArg);
}
if (!strictAars.isEmpty()) {
- cmdLineArgs.add(
- "--strict_libraries",
- VectorArg.of(strictAars).joinWith(",").mapEach(AndroidLocalTestBase::aarCmdLineArg));
+ cmdLineArgs.addJoined(
+ "--strict_libraries", ",", strictAars, AndroidLocalTestBase::aarCmdLineArg);
}
RunfilesSupport runfilesSupport =
RunfilesSupport.withExecutable(
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 ccd4e4ee39..9117465a22 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
@@ -23,7 +23,6 @@ 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.ActionConstructionContext;
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 java.util.ArrayList;
import java.util.List;
@@ -165,9 +164,8 @@ public class AndroidResourceValidatorActionBuilder {
builder
.add("--libraries")
- .addExecPaths(
- VectorArg.of(ImmutableList.copyOf(libraries))
- .joinWithDynamicString(context.getConfiguration().getHostPathSeparator()));
+ .addJoinedExecPaths(
+ context.getConfiguration().getHostPathSeparator(), ImmutableList.copyOf(libraries));
inputs.addAll(libraries);
builder.addExecPath("--compiled", compiledSymbols);
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 dd28572c62..5492df07ec 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,7 +22,6 @@ 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;
@@ -459,19 +458,16 @@ public class AndroidResourcesProcessorBuilder {
}
ImmutableList<String> filteredResources = resourceFilter.getResourcesToIgnoreInExecution();
if (!filteredResources.isEmpty()) {
- builder.add("--prefilteredResources", VectorArg.of(filteredResources).joinWith(","));
+ builder.addJoined("--prefilteredResources", ",", filteredResources);
}
if (!uncompressedExtensions.isEmpty()) {
- builder.add(
- "--uncompressedExtensions",
- VectorArg.of(ImmutableList.copyOf(uncompressedExtensions)).joinWith(","));
+ builder.addJoined("--uncompressedExtensions", ",", uncompressedExtensions);
}
if (!crunchPng) {
builder.add("--useAaptCruncher=no");
}
if (!assetsToIgnore.isEmpty()) {
- builder.add(
- "--assetsToIgnore", VectorArg.of(ImmutableList.copyOf(assetsToIgnore)).joinWith(","));
+ builder.addJoined("--assetsToIgnore", ",", assetsToIgnore);
}
if (debug) {
builder.add("--debug");
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 8d0e87b66e..095d1d8f43 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
@@ -43,7 +43,6 @@ 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;
@@ -375,8 +374,8 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
new Builder()
.addExecPath("--input", jar)
.addExecPath("--output", result)
- .addExecPaths(VectorArg.of(classpath).beforeEach("--classpath_entry"))
- .addExecPaths(VectorArg.of(bootclasspath).beforeEach("--bootclasspath_entry"))
+ .addBeforeEachExecPath("--classpath_entry", classpath)
+ .addBeforeEachExecPath("--bootclasspath_entry", bootclasspath)
.build();
// Just use params file, since classpaths can get long
@@ -429,7 +428,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
new Builder()
.addExecPath("--input_jar", jar)
.addExecPath("--output_zip", dexArchive)
- .add(ImmutableList.copyOf(incrementalDexopts))
+ .addAll(ImmutableList.copyOf(incrementalDexopts))
.build();
Artifact paramFile =
ruleContext.getDerivedArtifact(
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 3d68a65203..4835d09ebb 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,7 +23,6 @@ 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;
@@ -103,11 +102,9 @@ public class RClassGeneratorActionBuilder {
// TODO(corysmith): Remove NestedSet as we are already flattening it.
Iterable<ResourceContainer> depResources = dependencies.getResources();
if (!Iterables.isEmpty(depResources)) {
- builder.add(
- VectorArg.of(
- ImmutableList.copyOf(
- Iterables.transform(depResources, chooseDepsToArg(version))))
- .beforeEach("--library"));
+ builder.addBeforeEach(
+ "--library",
+ ImmutableList.copyOf(Iterables.transform(depResources, chooseDepsToArg(version))));
inputs.addTransitive(
NestedSetBuilder.wrap(
Order.NAIVE_LINK_ORDER,
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 760e2f3880..041059e9a4 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,7 +23,6 @@ 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;
@@ -241,18 +240,12 @@ public class ResourceContainerConverter {
if (dependencies != null) {
if (!dependencies.getTransitiveResources().isEmpty()) {
- cmdBuilder.add(
- "--data",
- VectorArg.of(dependencies.getTransitiveResources())
- .joinWithDynamicString(toArg.listSeparator())
- .mapEach(toArg));
+ cmdBuilder.addJoined(
+ "--data", toArg.listSeparator(), dependencies.getTransitiveResources(), toArg);
}
if (!dependencies.getDirectResources().isEmpty()) {
- cmdBuilder.add(
- "--directData",
- VectorArg.of(dependencies.getDirectResources())
- .joinWithDynamicString(toArg.listSeparator())
- .mapEach(toArg));
+ cmdBuilder.addJoined(
+ "--directData", toArg.listSeparator(), dependencies.getDirectResources(), 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 3e4519bcc3..fb0c79d19f 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,7 +20,6 @@ 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;
@@ -171,13 +170,10 @@ public class ResourceShrinkerActionBuilder {
inputs.add(sdk.getAndroidJar());
if (!uncompressedExtensions.isEmpty()) {
- commandLine.add(
- "--uncompressedExtensions",
- VectorArg.of(ImmutableList.copyOf(uncompressedExtensions)).joinWith(","));
+ commandLine.addJoined("--uncompressedExtensions", ",", uncompressedExtensions);
}
if (!assetsToIgnore.isEmpty()) {
- commandLine.add(
- "--assetsToIgnore", VectorArg.of(ImmutableList.copyOf(assetsToIgnore)).joinWith(","));
+ commandLine.addJoined("--assetsToIgnore", ",", assetsToIgnore);
}
if (ruleContext.getConfiguration().getCompilationMode() != CompilationMode.OPT) {
commandLine.add("--debug");
@@ -217,7 +213,7 @@ public class ResourceShrinkerActionBuilder {
ImmutableList<String> resourcePackages =
getResourcePackages(primaryResources, dependencyResources);
- commandLine.add("--resourcePackages", VectorArg.of(resourcePackages).joinWith(","));
+ commandLine.addJoined("--resourcePackages", ",", resourcePackages);
commandLine.addExecPath("--shrunkResourceApk", resourceApkOut);
outputs.add(resourceApkOut);
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 37e16721f8..fa537bfa95 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,7 +20,6 @@ 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;
@@ -86,11 +85,11 @@ public class RobolectricResourceSymbolsActionBuilder {
inputs.add(sdk.getAndroidJar());
if (!Iterables.isEmpty(dependencies.getResources())) {
- builder.add(
+ builder.addJoined(
"--data",
- VectorArg.of(dependencies.getResources())
- .joinWithDynamicString(RESOURCE_CONTAINER_TO_ARG.listSeparator())
- .mapEach(RESOURCE_CONTAINER_TO_ARG));
+ RESOURCE_CONTAINER_TO_ARG.listSeparator(),
+ dependencies.getResources(),
+ RESOURCE_CONTAINER_TO_ARG);
}
// This flattens the nested set.
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 dd11104253..c7ff2908a9 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
@@ -181,7 +181,7 @@ public class DeployArchiveBuilder {
if (!deployManifestLines.isEmpty()) {
args.add("--deploy_manifest_lines");
- args.add(deployManifestLines);
+ args.addAll(deployManifestLines);
}
if (buildInfoFiles != null) {
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 d60bca2bf0..567e66e438 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,7 +43,6 @@ 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;
@@ -425,17 +424,16 @@ public final class JavaCompileAction extends SpawnAction {
checkNotNull(javaBuilderJar);
CustomCommandLine.Builder builder =
- CustomCommandLine.builder().addPath(javaExecutable).add(javaBuilderJvmFlags);
+ CustomCommandLine.builder().addPath(javaExecutable).addAll(javaBuilderJvmFlags);
if (!instrumentationJars.isEmpty()) {
builder
- .addExecPaths(
+ .addJoinedExecPaths(
"-cp",
- VectorArg.of(
- ImmutableList.<Artifact>builder()
- .addAll(instrumentationJars)
- .add(javaBuilderJar)
- .build())
- .joinWithDynamicString(pathDelimiter))
+ pathDelimiter,
+ ImmutableList.<Artifact>builder()
+ .addAll(instrumentationJars)
+ .add(javaBuilderJar)
+ .build())
.addDynamicString(javaBuilderMainClass);
} else {
// If there are no instrumentation jars, use simpler '-jar' option to launch JavaBuilder.
@@ -697,10 +695,10 @@ public final class JavaCompileAction extends SpawnAction {
result.addExecPaths("--processorpath", processorPath);
}
if (!processorNames.isEmpty()) {
- result.add("--processors", ImmutableList.copyOf(processorNames));
+ result.addAll("--processors", ImmutableList.copyOf(processorNames));
}
if (!processorFlags.isEmpty()) {
- result.add("--javacopts", ImmutableList.copyOf(processorFlags));
+ result.addAll("--javacopts", ImmutableList.copyOf(processorFlags));
}
if (!sourceJars.isEmpty()) {
result.addExecPaths("--source_jars", ImmutableList.copyOf(sourceJars));
@@ -709,7 +707,7 @@ public final class JavaCompileAction extends SpawnAction {
result.addExecPaths("--sources", sourceFiles);
}
if (!javacOpts.isEmpty()) {
- result.add("--javacopts", ImmutableList.copyOf(javacOpts));
+ result.addAll("--javacopts", ImmutableList.copyOf(javacOpts));
}
if (ruleKind != null) {
result.add("--rule_kind", ruleKind);
@@ -722,7 +720,7 @@ public final class JavaCompileAction extends SpawnAction {
} else {
// @-prefixed strings will be assumed to be filenames and expanded by
// {@link JavaLibraryBuildRequest}, so add an extra &at; to escape it.
- result.addWithPrefix("@", targetLabel);
+ result.addPrefixedLabel("@", targetLabel);
}
}
if (testOnly) {
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 109a20004d..6f9fe8e11f 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
@@ -505,7 +505,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
return CustomCommandLine.builder()
.addPath(JavaCommon.getHostJavaExecutable(ruleContext))
.add("-Xverify:none")
- .add(javaToolchain.getJvmOptions())
+ .addAll(javaToolchain.getJvmOptions())
.addExecPath("-jar", javaToolchain.getHeaderCompiler());
}
@@ -531,7 +531,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
result.addExecPaths("--source_jars", ImmutableList.copyOf(sourceJars));
}
- result.add("--javacopts", javacOpts);
+ result.addAll("--javacopts", javacOpts);
if (ruleKind != null) {
result.add("--rule_kind", ruleKind);
@@ -544,7 +544,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
} else {
// @-prefixed strings will be assumed to be params filenames and expanded,
// so add an extra @ to escape it.
- result.addWithPrefix("@", targetLabel);
+ result.addPrefixedLabel("@", targetLabel);
}
}
result.addExecPaths("--classpath", classpathEntries);
@@ -556,10 +556,10 @@ public class JavaHeaderCompileAction extends SpawnAction {
CustomCommandLine.Builder result = CustomCommandLine.builder();
baseCommandLine(result, classpathEntries);
if (!processorNames.isEmpty()) {
- result.add("--processors", ImmutableList.copyOf(processorNames));
+ result.addAll("--processors", ImmutableList.copyOf(processorNames));
}
if (!processorFlags.isEmpty()) {
- result.add("--javacopts", ImmutableList.copyOf(processorFlags));
+ result.addAll("--javacopts", ImmutableList.copyOf(processorFlags));
}
if (!processorPath.isEmpty()) {
result.addExecPaths("--processorpath", processorPath);
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 8daf0e7295..fa643bd421 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
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
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.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -92,8 +91,8 @@ public final class OneVersionCheckActionBuilder {
if (enforcementLevel == OneVersionEnforcementLevel.WARNING) {
oneVersionArgsBuilder.add("--succeed_on_found_violations");
}
- oneVersionArgsBuilder.add("--inputs", VectorArg.of(jarsToCheck).mapEach(
- OneVersionCheckActionBuilder::jarAndTargetArg));
+ oneVersionArgsBuilder.addAll(
+ "--inputs", jarsToCheck, OneVersionCheckActionBuilder::jarAndTargetArg);
CustomCommandLine oneVersionArgs = oneVersionArgsBuilder.build();
ruleContext.registerAction(
new SpawnAction.Builder()
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 8b3e64c7a4..155d4359d9 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
@@ -93,7 +93,7 @@ public final class SingleJarActionBuilder {
Map<PathFragment, Artifact> resources, Iterable<Artifact> resourceJars) {
CustomCommandLine.Builder args = CustomCommandLine.builder();
args.addExecPath("--output", outputJar);
- args.add(SOURCE_JAR_COMMAND_LINE_ARGS);
+ args.addAll(SOURCE_JAR_COMMAND_LINE_ARGS);
args.addExecPaths("--sources", ImmutableList.copyOf(resourceJars));
if (!resources.isEmpty()) {
args.add("--resources");
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 805f90f68f..b96f37d418 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
@@ -447,8 +447,8 @@ final class BundleSupport {
}
return commandLine
- .add(ImmutableList.copyOf(PathFragment.safePathStrings(provider.get(XCASSETS_DIR))))
- .add(ImmutableList.copyOf(extraActoolArgs))
+ .addAll(ImmutableList.copyOf(PathFragment.safePathStrings(provider.get(XCASSETS_DIR))))
+ .addAll(ImmutableList.copyOf(extraActoolArgs))
.build();
}
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 9882ea4a0d..c9716a5902 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
@@ -55,7 +55,6 @@ 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;
@@ -1078,16 +1077,12 @@ public abstract class CompilationSupport {
.addExecPath("--output_archive", prunedJ2ObjcArchive)
.addExecPath("--dummy_archive", dummyArchive)
.addExecPath("--xcrunwrapper", xcrunwrapper(ruleContext).getExecutable())
- .addExecPaths(
- "--dependency_mapping_files",
- VectorArg.of(j2ObjcDependencyMappingFiles).joinWith(","))
- .addExecPaths(
- "--header_mapping_files", VectorArg.of(j2ObjcHeaderMappingFiles).joinWith(","))
- .addExecPaths(
- "--archive_source_mapping_files",
- VectorArg.of(j2ObjcArchiveSourceMappingFiles).joinWith(","))
+ .addJoinedExecPaths("--dependency_mapping_files", ",", j2ObjcDependencyMappingFiles)
+ .addJoinedExecPaths("--header_mapping_files", ",", j2ObjcHeaderMappingFiles)
+ .addJoinedExecPaths(
+ "--archive_source_mapping_files", ",", j2ObjcArchiveSourceMappingFiles)
.add("--entry_classes")
- .add(VectorArg.of(entryClasses).joinWith(","))
+ .addJoined(",", entryClasses)
.build();
ruleContext.registerAction(
@@ -1168,7 +1163,7 @@ public abstract class CompilationSupport {
ImmutableList<String> extraFlags, Artifact unstrippedArtifact, Artifact strippedArtifact) {
return CustomCommandLine.builder()
.add(STRIP)
- .add(extraFlags)
+ .addAll(extraFlags)
.addExecPath("-o", strippedArtifact)
.addPath(unstrippedArtifact.getExecPath())
.build();
@@ -1397,16 +1392,13 @@ public abstract class CompilationSupport {
XcodeConfig.getXcodeVersion(ruleContext).toStringWithMinimumComponents(2))
.add("--");
for (ObjcHeaderThinningInfo info : infos) {
- cmdLine.addPaths(
- VectorArg.of(
- ImmutableList.of(
- info.sourceFile.getExecPath(), info.headersListFile.getExecPath()))
- .joinWith(":"));
+ cmdLine.addFormatted(
+ "%s:%s", info.sourceFile.getExecPath(), info.headersListFile.getExecPath());
builder.addInput(info.sourceFile).addOutput(info.headersListFile);
}
ruleContext.registerAction(
builder
- .setCommandLine(cmdLine.add("--").add(args).build())
+ .setCommandLine(cmdLine.add("--").addAll(args).build())
.addInputs(compilationArtifacts.getPrivateHdrs())
.addTransitiveInputs(attributes.hdrs())
.addTransitiveInputs(objcProvider.get(ObjcProvider.HEADER))
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 0d018df6d2..3bdb5d48c0 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,7 +34,6 @@ 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;
@@ -493,21 +492,19 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
ImmutableList.Builder<Artifact> sourceJarOutputFiles = ImmutableList.builder();
if (!Iterables.isEmpty(sourceJars)) {
sourceJarOutputFiles.addAll(sourceJarOutputs(ruleContext));
- argBuilder.addExecPaths(
- "--src_jars", VectorArg.of(ImmutableList.copyOf(sourceJars)).joinWith(","));
- argBuilder.add(sourceJarFlags(ruleContext));
+ argBuilder.addJoinedExecPaths("--src_jars", ",", ImmutableList.copyOf(sourceJars));
+ argBuilder.addAll(sourceJarFlags(ruleContext));
}
Iterable<String> translationFlags = ruleContext
.getFragment(J2ObjcConfiguration.class)
.getTranslationFlags();
- argBuilder.add(ImmutableList.copyOf(translationFlags));
+ argBuilder.addAll(ImmutableList.copyOf(translationFlags));
NestedSet<Artifact> depsHeaderMappingFiles =
depJ2ObjcMappingFileProvider.getHeaderMappingFiles();
if (!depsHeaderMappingFiles.isEmpty()) {
- argBuilder.addExecPaths(
- "--header-mapping", VectorArg.of(depsHeaderMappingFiles).joinWith(","));
+ argBuilder.addJoinedExecPaths("--header-mapping", ",", depsHeaderMappingFiles);
}
boolean experimentalJ2ObjcHeaderMap =
@@ -519,7 +516,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> depsClassMappingFiles = depJ2ObjcMappingFileProvider.getClassMappingFiles();
if (!depsClassMappingFiles.isEmpty()) {
- argBuilder.addExecPaths("--mapping", VectorArg.of(depsClassMappingFiles).joinWith(","));
+ argBuilder.addJoinedExecPaths("--mapping", ",", depsClassMappingFiles);
}
Artifact archiveSourceMappingFile = j2ObjcOutputArchiveSourceMappingFile(ruleContext);
@@ -541,7 +538,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> compileTimeJars =
compArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
if (!compileTimeJars.isEmpty()) {
- argBuilder.addExecPaths("-classpath", VectorArg.of(compileTimeJars).joinWith(":"));
+ argBuilder.addJoinedExecPaths("-classpath", ":", compileTimeJars);
}
argBuilder.addExecPaths(ImmutableList.copyOf(sources));
@@ -587,12 +584,12 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
if (experimentalJ2ObjcHeaderMap) {
CustomCommandLine.Builder headerMapCommandLine = CustomCommandLine.builder();
if (!Iterables.isEmpty(sources)) {
- headerMapCommandLine.addExecPaths(
- "--source_files", VectorArg.of(ImmutableList.copyOf(sources)).joinWith(","));
+ headerMapCommandLine.addJoinedExecPaths(
+ "--source_files", ",", ImmutableList.copyOf(sources));
}
if (!Iterables.isEmpty(sourceJars)) {
- headerMapCommandLine.addExecPaths(
- "--source_jars", VectorArg.of(ImmutableList.copyOf(sourceJars)).joinWith(","));
+ headerMapCommandLine.addJoinedExecPaths(
+ "--source_jars", ",", ImmutableList.copyOf(sourceJars));
}
headerMapCommandLine.addExecPath("--output_mapping_file", outputHeaderMappingFile);
ruleContext.registerAction(new SpawnAction.Builder()
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 b5e312e7c5..dc7326d56e 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,7 +50,6 @@ 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;
@@ -300,20 +299,20 @@ public class LegacyCompilationSupport extends CompilationSupport {
}
commandLine
- .add(ImmutableList.copyOf(compileFlagsForClang(appleConfiguration)))
- .add(commonLinkAndCompileFlagsForClang(objcProvider, objcConfiguration, appleConfiguration))
- .add(objcConfiguration.getCoptsForCompilationMode())
- .addPaths(
- VectorArg.of(ObjcCommon.userHeaderSearchPaths(objcProvider, buildConfiguration))
- .beforeEach("-iquote"))
- .addExecPaths(VectorArg.of(ImmutableList.copyOf(pchFile.asSet())).beforeEach("-include"))
- .addPaths(VectorArg.of(ImmutableList.copyOf(priorityHeaders)).beforeEach("-I"))
- .addPaths(VectorArg.of(objcProvider.get(INCLUDE)).beforeEach("-I"))
- .addPaths(VectorArg.of(objcProvider.get(INCLUDE_SYSTEM)).beforeEach("-isystem"))
- .add(ImmutableList.copyOf(otherFlags))
- .add(VectorArg.of(objcProvider.get(DEFINE)).formatEach("-D%s"))
- .add(coverageFlags)
- .add(ImmutableList.copyOf(getCompileRuleCopts()));
+ .addAll(ImmutableList.copyOf(compileFlagsForClang(appleConfiguration)))
+ .addAll(
+ commonLinkAndCompileFlagsForClang(objcProvider, objcConfiguration, appleConfiguration))
+ .addAll(objcConfiguration.getCoptsForCompilationMode())
+ .addBeforeEachPath(
+ "-iquote", ObjcCommon.userHeaderSearchPaths(objcProvider, buildConfiguration))
+ .addBeforeEachExecPath("-include", pchFile.asSet())
+ .addBeforeEachPath("-I", ImmutableList.copyOf(priorityHeaders))
+ .addBeforeEachPath("-I", objcProvider.get(INCLUDE))
+ .addBeforeEachPath("-isystem", objcProvider.get(INCLUDE_SYSTEM))
+ .addAll(ImmutableList.copyOf(otherFlags))
+ .addFormatEach("-D%s", objcProvider.get(DEFINE))
+ .addAll(coverageFlags)
+ .addAll(ImmutableList.copyOf(getCompileRuleCopts()));
// Add input source file arguments
commandLine.add("-c");
@@ -703,7 +702,7 @@ public class LegacyCompilationSupport extends CompilationSupport {
commandLine.add("-filelist", inputFileList.getExecPathString());
AppleBitcodeMode bitcodeMode = appleConfiguration.getBitcodeMode();
- commandLine.add(bitcodeMode.getCompileAndLinkFlags());
+ commandLine.addAll(bitcodeMode.getCompileAndLinkFlags());
if (bitcodeMode == AppleBitcodeMode.EMBEDDED) {
commandLine.add("-Xlinker").add("-bitcode_verify");
@@ -716,7 +715,8 @@ public class LegacyCompilationSupport extends CompilationSupport {
}
commandLine
- .add(commonLinkAndCompileFlagsForClang(objcProvider, objcConfiguration, appleConfiguration))
+ .addAll(
+ commonLinkAndCompileFlagsForClang(objcProvider, objcConfiguration, appleConfiguration))
.add("-Xlinker")
.add("-objc_abi_version")
.add("-Xlinker")
@@ -728,24 +728,20 @@ public class LegacyCompilationSupport extends CompilationSupport {
.add("-Xlinker")
.add("@executable_path/Frameworks")
.add("-fobjc-link-runtime")
- .add(DEFAULT_LINKER_FLAGS)
- .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"))
+ .addAll(DEFAULT_LINKER_FLAGS)
+ .addBeforeEach("-framework", frameworkNames(objcProvider))
+ .addBeforeEach("-weak_framework", SdkFramework.names(objcProvider.get(WEAK_SDK_FRAMEWORK)))
+ .addFormatEach("-l%s", libraryNames)
.addExecPath("-o", linkedBinary)
- .addExecPaths(VectorArg.of(forceLinkArtifacts).beforeEach("-force_load"))
- .add(ImmutableList.copyOf(extraLinkArgs))
- .add(objcProvider.get(ObjcProvider.LINKOPT));
+ .addBeforeEachExecPath("-force_load", forceLinkArtifacts)
+ .addAll(ImmutableList.copyOf(extraLinkArgs))
+ .addAll(objcProvider.get(ObjcProvider.LINKOPT));
if (buildConfiguration.isCodeCoverageEnabled()) {
if (buildConfiguration.isLLVMCoverageMapFormatEnabled()) {
- commandLine.add(LINKER_LLVM_COVERAGE_FLAGS);
+ commandLine.addAll(LINKER_LLVM_COVERAGE_FLAGS);
} else {
- commandLine.add(LINKER_COVERAGE_FLAGS);
+ commandLine.addAll(LINKER_COVERAGE_FLAGS);
}
}
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 abaed048bb..e9b666a526 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
@@ -28,7 +28,6 @@ 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;
@@ -478,7 +477,7 @@ final class ProtobufSupport {
.addDynamicString(getGenfilesPathString())
.add("--proto-root-dir")
.add(".")
- .addExecPaths(VectorArg.of(portableProtoFilters).beforeEach("--config"))
+ .addBeforeEachExecPath("--config", portableProtoFilters)
.build();
}
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 86415309d5..13300208e2 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
@@ -301,7 +301,7 @@ public class ProtoCompileActionBuilder {
result.addLazyString(new LazyLangPluginFlag(langPrefix, langPluginParameter1));
}
- result.add(ruleContext.getFragment(ProtoConfiguration.class).protocOpts());
+ result.addAll(ruleContext.getFragment(ProtoConfiguration.class).protocOpts());
boolean areDepsStrict = areDepsStrict(ruleContext);
@@ -326,7 +326,7 @@ public class ProtoCompileActionBuilder {
}
if (additionalCommandLineArguments != null) {
- result.add(ImmutableList.copyOf(additionalCommandLineArguments));
+ result.addAll(ImmutableList.copyOf(additionalCommandLineArguments));
}
return result;
@@ -586,7 +586,7 @@ public class ProtoCompileActionBuilder {
}
}
- cmdLine.add(protocOpts);
+ cmdLine.addAll(protocOpts);
// Add include maps
cmdLine.addCustomMultiArgv(new ProtoCommandLineArgv(protosInDirectDeps, transitiveSources));