aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
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/cpp
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/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java
index efd15ac512..3603f20e4f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContextInfo.java
@@ -37,6 +37,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
@@ -198,6 +199,11 @@ public final class CcCompilationContextInfo {
return declaredIncludeSrcs;
}
+ /** Returns headers given as textual_hdrs in this target. */
+ public ImmutableSet<Artifact> getTextualHdrs() {
+ return moduleInfo.textualHeaders;
+ }
+
/**
* Returns the immutable pairs of (header file, pregrepped header file). The value artifacts
* (pregrepped header file) are generated by {@link ExtractInclusionAction}.
@@ -687,6 +693,9 @@ public final class CcCompilationContextInfo {
@VisibleForTesting // productionVisibility = Visibility.PRIVATE
public CcCompilationContextInfo build(ActionOwner owner, MiddlemanFactory middlemanFactory) {
+ Preconditions.checkState(
+ Objects.equals(moduleInfo.textualHeaders, picModuleInfo.textualHeaders),
+ "Module and PIC module's textual headers are expected to be identical");
// We don't create middlemen in LIPO collector subtree, because some target CT
// will do that instead.
Artifact prerequisiteStampFile = (ruleContext != null