diff options
author | 2016-10-07 20:41:18 +0000 | |
---|---|---|
committer | 2016-10-10 09:54:34 +0000 | |
commit | d08e7c0a592a27561426a43e04480b85209881dd (patch) | |
tree | a07937c15b6acd09084cb22e0cd1c93fab28edfd /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java | |
parent | 341e5ddaecb44f9822d041ac6e01973e0ad06deb (diff) |
Add a way to pass extra inputs to the linking step
* This will allow swift_library to add necessary swiftmodule artifacts to the
linking action, enabling debugger support.
--
MOS_MIGRATED_REVID=135512029
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java | 14 |
1 files changed, 10 insertions, 4 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 d88c3bda3e..5f48a9db82 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 @@ -329,8 +329,15 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive public static final Key<String> LINKOPT = new Key<>(LINK_ORDER, "linkopt", String.class); /** - * Static libraries that are built from J2ObjC-translated Java code. + * Link time artifacts from dependencies. These do not fall into any other category such as + * libraries or archives, rather provide a way to add arbitrary data (e.g. Swift AST files) + * to the linker. The rule that adds these is also responsible to add the necessary linker flags + * in {@link #LINKOPT}. */ + public static final Key<Artifact> LINK_INPUTS = + new Key<>(LINK_ORDER, "link_inputs", Artifact.class); + + /** Static libraries that are built from J2ObjC-translated Java code. */ public static final Key<Artifact> J2OBJC_LIBRARY = new Key<>(LINK_ORDER, "j2objc_library", Artifact.class); @@ -368,9 +375,7 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive // Items which should not be propagated to dependents. private final ImmutableMap<Key<?>, NestedSet<?>> nonPropagatedItems; - /** - * All keys in ObjcProvider that will be passed in the corresponding Skylark provider. - */ + /** All keys in ObjcProvider that will be passed in the corresponding Skylark provider. */ static final ImmutableList<Key<?>> KEYS_FOR_SKYLARK = ImmutableList.<Key<?>>of( LIBRARY, @@ -394,6 +399,7 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive XIB, STRINGS, LINKOPT, + LINK_INPUTS, J2OBJC_LIBRARY, ROOT_MERGE_ZIP, INCLUDE, |