aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2018-02-12 06:41:54 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-12 06:44:02 -0800
commitdb61b316458685344d3aa4b6a784f09001a90892 (patch)
tree0a3bdca0bcda9df1a2282de3c51e042aeb6d79d0 /src/main/java/com/google/devtools/build/lib/rules/objc
parenta92cde101f774c7731fbf16abc099dad311b5216 (diff)
Changes cc_library to consume headers specified in the "hdrs" attribute of an
objc_library that it depends on. See https://github.com/bazelbuild/bazel/issues/3352 PiperOrigin-RevId: 185371993
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/ObjcCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java7
2 files changed, 8 insertions, 1 deletions
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 ea55f9adbc..5c9292969e 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
@@ -90,7 +90,7 @@ import java.util.Set;
public final class ObjcCommon {
/** Filters fileset artifacts out of a group of artifacts. */
- public static Iterable<Artifact> filterFileset(Iterable<Artifact> artifacts) {
+ public static ImmutableList<Artifact> filterFileset(Iterable<Artifact> artifacts) {
ImmutableList.Builder<Artifact> inputs = ImmutableList.<Artifact>builder();
for (Artifact artifact : artifacts) {
if (!artifact.isFileset()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
index 7ad60f0c46..7785f22ee1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider;
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.cpp.CcLinkParamsInfo;
+import com.google.devtools.build.lib.rules.cpp.CppCompilationContext;
import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes;
import com.google.devtools.build.lib.syntax.Type;
import java.util.Map;
@@ -87,9 +88,15 @@ public class ObjcLibrary implements RuleConfiguredTargetFactory {
J2ObjcEntryClassProvider j2ObjcEntryClassProvider = new J2ObjcEntryClassProvider.Builder()
.addTransitive(ruleContext.getPrerequisites("deps", Mode.TARGET,
J2ObjcEntryClassProvider.class)).build();
+ CppCompilationContext cppCompilationContext =
+ new CppCompilationContext.Builder(ruleContext)
+ .addDeclaredIncludeSrcs(CompilationAttributes.Builder
+ .fromRuleContext(ruleContext).build().hdrs().toCollection())
+ .build();
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addNativeDeclaredProvider(common.getObjcProvider())
+ .addProvider(CppCompilationContext.class, cppCompilationContext)
.addProvider(J2ObjcEntryClassProvider.class, j2ObjcEntryClassProvider)
.addProvider(J2ObjcMappingFileProvider.class, j2ObjcMappingFileProvider)
.addProvider(