aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar Manuel Klimek <klimek@google.com>2016-02-03 21:02:56 +0000
committerGravatar David Chen <dzc@google.com>2016-02-03 22:07:18 +0000
commit2dae2f6b4cd3182a1fbdbd17ef0726aee4bc3b70 (patch)
tree085e462372b9d4392c76057bceac824e94f6bb44 /src/main/java/com/google/devtools/build/lib/rules/objc
parentc1a6422a42b32c784c8dba0cf6b901c0b5dfbe93 (diff)
Do not compile source files mentioned in 'hdrs'.
Currently for a library: cc_library(name='a', hdrs=['a.cc']) we compile a.cc into a.pic.o and link that into its reverse dependencies. With this change, a .cc file in hdrs will be treated like a .inc file or a file in textual_hd... -- MOS_MIGRATED_REVID=113773418
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/IosFramework.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java8
2 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java
index 0c553b2bfb..d60a62f4d9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java
@@ -32,9 +32,11 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.SymlinkAction;
+import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
import com.google.devtools.build.lib.rules.cpp.CcCommon;
import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.SplitArchTransition.ConfigurationDistinguisher;
+import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
@@ -84,7 +86,8 @@ public class IosFramework extends ReleaseBundlingTargetFactory {
IntermediateArtifacts intermediateArtifacts =
ObjcRuleClasses.intermediateArtifacts(ruleContext);
- ImmutableList<Artifact> headers = ImmutableList.copyOf(CcCommon.getHeaders(ruleContext));
+ ImmutableList<Pair<Artifact, Label>> headers =
+ ImmutableList.copyOf(CcCommon.getHeaders(ruleContext));
ImmutableMap.Builder<Artifact, Artifact> builder = new ImmutableMap.Builder<>();
@@ -94,11 +97,11 @@ public class IosFramework extends ReleaseBundlingTargetFactory {
builder.put(intermediateArtifacts.combinedArchitectureBinary(), frameworkBinary);
// Create framework headers
- for (Artifact header : headers) {
+ for (Pair<Artifact, Label> header : headers) {
Artifact frameworkHeader =
- outputArtifact(ruleContext, new PathFragment("Headers/" + header.getFilename()));
+ outputArtifact(ruleContext, new PathFragment("Headers/" + header.first.getFilename()));
- builder.put(header, frameworkHeader);
+ builder.put(header.first, frameworkHeader);
}
return builder.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index b469b22c5c..4b8412ee36 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -61,6 +61,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.rules.apple.AppleToolchain;
import com.google.devtools.build.lib.rules.cpp.CcCommon;
@@ -71,6 +72,7 @@ import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
import com.google.devtools.build.lib.rules.cpp.CppRunfilesProvider;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.util.FileType;
+import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -106,7 +108,11 @@ public final class ObjcCommon {
if (!ruleContext.attributes().has("hdrs", BuildType.LABEL_LIST)) {
return ImmutableList.of();
}
- return ImmutableList.copyOf(CcCommon.getHeaders(ruleContext));
+ ImmutableList.Builder<Artifact> headers = ImmutableList.builder();
+ for (Pair<Artifact, Label> header : CcCommon.getHeaders(ruleContext)) {
+ headers.add(header.first);
+ }
+ return headers.build();
}
/**