aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2018-04-30 11:22:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-30 11:23:42 -0700
commit968f87900dce45a7af749a965b72dbac51b176b3 (patch)
treec8fe0ed7bb3d1a138206047bbd4160e4d28d2e7f /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
parent678bdb78a7971d9155297099aaac594f03d663fc (diff)
Headers specified in cc_library.textual_hdrs are passed through objc_library
targets to upstream cc_library targets. PiperOrigin-RevId: 194816009
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java14
1 files changed, 12 insertions, 2 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 c13c0757be..f53d612f97 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
@@ -156,6 +156,7 @@ public final class ObjcCommon {
private Iterable<Artifact> staticFrameworkImports = ImmutableList.of();
private Iterable<Artifact> dynamicFrameworkImports = ImmutableList.of();
private Optional<CompilationArtifacts> compilationArtifacts = Optional.absent();
+ private ImmutableSet.Builder<Artifact> textualHeaders = ImmutableSet.builder();
private Iterable<ObjcProvider> depObjcProviders = ImmutableList.of();
private Iterable<ObjcProvider> directDepObjcProviders = ImmutableList.of();
private Iterable<ObjcProvider> runtimeDepObjcProviders = ImmutableList.of();
@@ -461,6 +462,7 @@ public final class ObjcCommon {
// probably shouldn't.
objcProvider.addAll(INCLUDE_SYSTEM, headerProvider.getSystemIncludeDirs());
objcProvider.addAll(DEFINE, headerProvider.getDefines());
+ textualHeaders.addAll(headerProvider.getTextualHdrs());
}
for (CcLinkParamsInfo linkProvider : depCcLinkProviders) {
CcLinkParams params = linkProvider.getCcLinkParams(true, false);
@@ -607,7 +609,7 @@ public final class ObjcCommon {
.add(DEBUG_SYMBOLS_PLIST, intermediateArtifacts.dsymPlist(dsymOutputType));
}
- return new ObjcCommon(objcProvider.build(), compilationArtifacts);
+ return new ObjcCommon(objcProvider.build(), compilationArtifacts, textualHeaders.build());
}
private static boolean useStrictObjcModuleMaps(RuleContext context) {
@@ -653,11 +655,15 @@ public final class ObjcCommon {
private final ObjcProvider objcProvider;
private final Optional<CompilationArtifacts> compilationArtifacts;
+ private final ImmutableSet<Artifact> textualHdrs;
private ObjcCommon(
- ObjcProvider objcProvider, Optional<CompilationArtifacts> compilationArtifacts) {
+ ObjcProvider objcProvider,
+ Optional<CompilationArtifacts> compilationArtifacts,
+ ImmutableSet<Artifact> textualHdrs) {
this.objcProvider = Preconditions.checkNotNull(objcProvider);
this.compilationArtifacts = Preconditions.checkNotNull(compilationArtifacts);
+ this.textualHdrs = textualHdrs;
}
public ObjcProvider getObjcProvider() {
@@ -668,6 +674,10 @@ public final class ObjcCommon {
return compilationArtifacts;
}
+ public ImmutableSet<Artifact> getTextualHdrs() {
+ return textualHdrs;
+ }
+
/**
* Returns an {@link Optional} containing the compiled {@code .a} file, or
* {@link Optional#absent()} if this object contains no {@link CompilationArtifacts} or the