aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java36
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java29
3 files changed, 46 insertions, 35 deletions
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 39ed3e564c..81126eab69 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
@@ -34,7 +34,6 @@ import static java.nio.charset.StandardCharsets.ISO_8859_1;
import static java.util.stream.Collectors.toCollection;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Joiner;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
@@ -1099,25 +1098,34 @@ public abstract class CompilationSupport {
.getPrerequisite("$dummy_lib", Mode.TARGET, ObjcProvider.class)
.get(LIBRARY));
- CustomCommandLine commandLine =
+ CustomCommandLine.Builder commandLineBuilder =
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("--entry_classes")
- .add(Joiner.on(",").join(entryClasses))
- .build();
+ .addExecPath("--xcrunwrapper", xcrunwrapper(ruleContext).getExecutable());
+ if (!j2ObjcDependencyMappingFiles.isEmpty()) {
+ commandLineBuilder
+ .add("--dependency_mapping_files")
+ .addJoinExecPaths(",", j2ObjcDependencyMappingFiles);
+ }
+ if (!j2ObjcHeaderMappingFiles.isEmpty()) {
+ commandLineBuilder
+ .add("--header_mapping_files")
+ .addJoinExecPaths(",", j2ObjcHeaderMappingFiles);
+ }
+ if (!j2ObjcArchiveSourceMappingFiles.isEmpty()) {
+ commandLineBuilder
+ .add("--archive_source_mapping_files")
+ .addJoinExecPaths(",", j2ObjcArchiveSourceMappingFiles);
+ }
+ commandLineBuilder.add("--entry_classes").addJoinStrings(",", entryClasses);
ruleContext.registerAction(
new ParameterFileWriteAction(
ruleContext.getActionOwner(),
paramFile,
- commandLine,
+ commandLineBuilder.build(),
ParameterFile.ParameterFileType.UNQUOTED,
ISO_8859_1));
ruleContext.registerAction(
@@ -1139,7 +1147,7 @@ public abstract class CompilationSupport {
.build(ruleContext));
}
}
-
+
/** Returns archives arising from j2objc transpilation after dead code removal. */
protected Iterable<Artifact> computeAndStripPrunedJ2ObjcArchives(
J2ObjcEntryClassProvider j2ObjcEntryClassProvider,
@@ -1421,9 +1429,7 @@ public abstract class CompilationSupport {
.add(appleConfiguration.getXcodeVersion().toStringWithMinimumComponents(2))
.add("--");
for (ObjcHeaderThinningInfo info : infos) {
- cmdLine.addJoinPaths(
- ":",
- Lists.newArrayList(info.sourceFile.getExecPath(), info.headersListFile.getExecPath()));
+ cmdLine.addJoinExecPaths(":", ImmutableList.of(info.sourceFile, info.headersListFile));
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 60a24514e0..f2cf27fe0b 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
@@ -492,8 +492,10 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
ImmutableList.Builder<Artifact> sourceJarOutputFiles = ImmutableList.builder();
if (!Iterables.isEmpty(sourceJars)) {
sourceJarOutputFiles.addAll(sourceJarOutputs(ruleContext));
- argBuilder.addJoinExecPaths("--src_jars", ",", sourceJars);
- argBuilder.add(sourceJarFlags(ruleContext));
+ argBuilder
+ .add("--src_jars")
+ .addJoinExecPaths(",", sourceJars)
+ .add(sourceJarFlags(ruleContext));
}
Iterable<String> translationFlags = ruleContext
@@ -504,7 +506,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> depsHeaderMappingFiles =
depJ2ObjcMappingFileProvider.getHeaderMappingFiles();
if (!depsHeaderMappingFiles.isEmpty()) {
- argBuilder.addJoinExecPaths("--header-mapping", ",", depsHeaderMappingFiles);
+ argBuilder.add("--header-mapping").addJoinExecPaths(",", depsHeaderMappingFiles);
}
boolean experimentalJ2ObjcHeaderMap =
@@ -516,7 +518,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> depsClassMappingFiles = depJ2ObjcMappingFileProvider.getClassMappingFiles();
if (!depsClassMappingFiles.isEmpty()) {
- argBuilder.addJoinExecPaths("--mapping", ",", depsClassMappingFiles);
+ argBuilder.add("--mapping").addJoinExecPaths(",", depsClassMappingFiles);
}
Artifact archiveSourceMappingFile = j2ObjcOutputArchiveSourceMappingFile(ruleContext);
@@ -538,7 +540,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
NestedSet<Artifact> compileTimeJars =
compArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
if (!compileTimeJars.isEmpty()) {
- argBuilder.addJoinExecPaths("-classpath", ":", compileTimeJars);
+ argBuilder.add("-classpath").addJoinExecPaths(":", compileTimeJars);
}
argBuilder.addExecPaths(sources);
@@ -584,10 +586,10 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
if (experimentalJ2ObjcHeaderMap) {
CustomCommandLine.Builder headerMapCommandLine = CustomCommandLine.builder();
if (!Iterables.isEmpty(sources)) {
- headerMapCommandLine.addJoinExecPaths("--source_files", ",", sources);
+ headerMapCommandLine.add("--source_files").addJoinExecPaths(",", sources);
}
if (!Iterables.isEmpty(sourceJars)) {
- headerMapCommandLine.addJoinExecPaths("--source_jars", ",", sourceJars);
+ headerMapCommandLine.add("--source_jars").addJoinExecPaths(",", 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/LipoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java
index 41487ecc43..bad646175a 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
@@ -29,7 +29,7 @@ import com.google.devtools.build.lib.rules.apple.ApplePlatform;
*/
public class LipoSupport {
private final RuleContext ruleContext;
-
+
public LipoSupport(RuleContext ruleContext) {
this.ruleContext = ruleContext;
}
@@ -46,18 +46,21 @@ 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")
+ .addExecPaths(inputBinaries)
+ .addExecPath("-o", outputBinary)
+ .build())
+ .build(ruleContext));
} else {
ruleContext.registerAction(new SymlinkAction(
ruleContext.getActionOwner(),