diff options
author | Googler <noreply@google.com> | 2015-06-12 15:53:47 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-06-15 10:50:05 +0000 |
commit | 162d5b276e1539b1acc44afcd4a4ccadcf99023a (patch) | |
tree | 1dff00fc9e451cc47a3e95385b061f2fc95ea4ab /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java | |
parent | e54eee40d866326ca7b699e441c83c1c58be3ecf (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.java | 9 |
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() |