aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-05-05 20:10:54 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-05-06 09:29:48 +0000
commit76c58128251f39c7d1fe4cae412e7ca9a8447e3b (patch)
tree1514310acb58ad136f22265e532dfcc3067efe65 /src/main
parent22b7dc4473b1a293de55199ff7aa2ddce5e28827 (diff)
Expose ObjcProvider.INCLUDE to Skylark (read-only).
RELNOTES: Skylark targets can now read include directories from ObjcProvider. -- MOS_MIGRATED_REVID=121608039
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index f43a63ddbe..94013e3f1d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
import com.google.devtools.build.lib.rules.cpp.LinkerInputs;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
@@ -422,6 +423,20 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive
return !get(XCASSETS_DIR).isEmpty();
}
+ @SkylarkCallable(
+ name = "include",
+ structField = true,
+ doc = "Returns a set of include search paths."
+ )
+ public SkylarkNestedSet getIncludeDirs() {
+ // TODO(b/28615250): Generalize this conversion.
+ NestedSetBuilder<String> includes = NestedSetBuilder.stableOrder();
+ for (PathFragment path : get(INCLUDE)) {
+ includes.add(path.getSafePathString());
+ }
+ return SkylarkNestedSet.of(String.class, includes.build());
+ }
+
/**
* A builder for this context with an API that is optimized for collecting information from
* several transitive dependencies.