aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-10-07 20:41:18 +0000
committerGravatar Yue Gan <yueg@google.com>2016-10-10 09:54:34 +0000
commitd08e7c0a592a27561426a43e04480b85209881dd (patch)
treea07937c15b6acd09084cb22e0cd1c93fab28edfd /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
parent341e5ddaecb44f9822d041ac6e01973e0ad06deb (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.java14
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,