aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Rumou Duan <rduan@google.com>2015-08-18 16:12:29 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-08-20 14:45:43 +0000
commit28fe4daaa5a9cac9c0442ba1f49e2a672029055c (patch)
tree8fb9fb50f2cec3f46a1f71297fdde4ba16ad61b2 /src
parentee082d0cff29d4cd1694bc280a8db161d785df81 (diff)
--
MOS_MIGRATED_REVID=100930529
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java31
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSource.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java4
3 files changed, 28 insertions, 15 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 a934f09b26..c76f35baa2 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
@@ -642,19 +642,21 @@ final class CompilationSupport {
}
for (J2ObjcSource j2ObjcSource : j2ObjcSources) {
- J2ObjcSource sourceToCompile =
- j2ObjcSource.getSourceType() == SourceType.JAVA && stripJ2ObjcDeadCode
- ? j2ObjcSource.toPrunedSource(ruleContext)
- : j2ObjcSource;
- IntermediateArtifacts intermediateArtifacts =
- ObjcRuleClasses.j2objcIntermediateArtifacts(ruleContext, sourceToCompile);
- CompilationArtifacts compilationArtifact = new CompilationArtifacts.Builder()
- .addNonArcSrcs(sourceToCompile.getObjcSrcs())
- .setIntermediateArtifacts(intermediateArtifacts)
- .setPchFile(Optional.<Artifact>absent())
- .build();
- registerCompileAndArchiveActions(compilationArtifact, intermediateArtifacts, objcProvider,
- ruleContext.getConfiguration().isCodeCoverageEnabled());
+ if (j2ObjcSource.hasSourceFiles()) {
+ J2ObjcSource sourceToCompile =
+ j2ObjcSource.getSourceType() == SourceType.JAVA && stripJ2ObjcDeadCode
+ ? j2ObjcSource.toPrunedSource(ruleContext)
+ : j2ObjcSource;
+ IntermediateArtifacts intermediateArtifacts =
+ ObjcRuleClasses.j2objcIntermediateArtifacts(ruleContext, sourceToCompile);
+ CompilationArtifacts compilationArtifact = new CompilationArtifacts.Builder()
+ .addNonArcSrcs(sourceToCompile.getObjcSrcs())
+ .setIntermediateArtifacts(intermediateArtifacts)
+ .setPchFile(Optional.<Artifact>absent())
+ .build();
+ registerCompileAndArchiveActions(compilationArtifact, intermediateArtifacts, objcProvider,
+ ruleContext.getConfiguration().isCodeCoverageEnabled());
+ }
}
return this;
@@ -668,7 +670,8 @@ final class CompilationSupport {
NestedSet<Artifact> j2ObjcHeaderMappingFiles = provider.getHeaderMappingFiles();
for (J2ObjcSource j2ObjcSource : j2ObjcSources) {
- if (j2ObjcSource.getSourceType() == SourceType.JAVA) {
+ if (j2ObjcSource.getSourceType() == SourceType.JAVA
+ && j2ObjcSource.hasSourceFiles()) {
Iterable<Artifact> sourceArtifacts = j2ObjcSource.getObjcSrcs();
Iterable<Artifact> prunedSourceArtifacts =
j2ObjcSource.toPrunedSource(ruleContext).getObjcSrcs();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSource.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSource.java
index b1e7a42ca6..6e1872935e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSource.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSource.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.rules.objc;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -137,6 +138,13 @@ public class J2ObjcSource {
return sourceType;
}
+ /**
+ * Returns whether this {@link J2ObjcSource} contains any ObjC source (.m, .mm) files.
+ */
+ public boolean hasSourceFiles() {
+ return !Iterables.isEmpty(objcSrcs);
+ }
+
@Override
public final boolean equals(Object other) {
if (!(other instanceof J2ObjcSource)) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
index e7129e5215..ad32d2e36b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
@@ -106,7 +106,9 @@ public class ObjcRuleClasses {
// TODO(bazel-team): Refactor the code to stop flattening the nested set here.
for (J2ObjcSource j2ObjcSource : J2ObjcSrcsProvider.buildFrom(ruleContext).getSrcs()) {
- j2objcLibraries.add(j2objcIntermediateArtifacts(ruleContext, j2ObjcSource).archive());
+ if (j2ObjcSource.hasSourceFiles()) {
+ j2objcLibraries.add(j2objcIntermediateArtifacts(ruleContext, j2ObjcSource).archive());
+ }
}
return j2objcLibraries.build();