diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
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)); |