aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-06-12 15:53:47 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-06-15 10:50:05 +0000
commit162d5b276e1539b1acc44afcd4a4ccadcf99023a (patch)
tree1dff00fc9e451cc47a3e95385b061f2fc95ea4ab /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java
parente54eee40d866326ca7b699e441c83c1c58be3ecf (diff)
Allow private header files in the srcs attribute of objc_* rules.
This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. clang enforces private header usage through these maps. Right now module maps are interpreted but modules aren't enabled. RELNOTES: Allow private header files in the srcs attribute of objc_* rules. -- MOS_MIGRATED_REVID=95844137
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java
index 7e1504721e..7708e10499 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java
@@ -156,16 +156,18 @@ public class ObjcProtoLibrary implements RuleConfiguredTargetFactory {
.addNonArcSrcs(protoGeneratedSources)
.setIntermediateArtifacts(intermediateArtifacts)
.setPchFile(Optional.<Artifact>absent())
+ .addAdditionalHdrs(protoGeneratedHeaders)
+ .addAdditionalHdrs(protoGeneratedSources)
.build();
ImmutableSet.Builder<PathFragment> searchPathEntriesBuilder =
new ImmutableSet.Builder<PathFragment>()
.add(workspaceRelativeOutputDir);
- if (ruleContext.getConfiguration().getFragment(ObjcConfiguration.class).perProtoIncludes()) {
+ if (ruleContext.getConfiguration().getFragment(ObjcConfiguration.class).perProtoIncludes()) {
searchPathEntriesBuilder
.add(generatedProtoDir)
.addAll(Iterables.transform(protoGeneratedHeaders, PARENT_PATHFRAGMENT));
- }
+ }
ImmutableSet<PathFragment> searchPathEntries = searchPathEntriesBuilder.build();
ObjcCommon common = new ObjcCommon.Builder(ruleContext)
@@ -174,8 +176,7 @@ public class ObjcProtoLibrary implements RuleConfiguredTargetFactory {
.addDepObjcProviders(ruleContext.getPrerequisites(
ObjcProtoLibraryRule.LIBPROTOBUF_ATTR, Mode.TARGET, ObjcProvider.class))
.setIntermediateArtifacts(intermediateArtifacts)
- .addHeaders(protoGeneratedHeaders)
- .addHeaders(protoGeneratedSources)
+ .setGeneratesModuleMap()
.build();
NestedSetBuilder<Artifact> filesToBuild = NestedSetBuilder.<Artifact>stableOrder()