aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2016-12-02 18:59:26 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-12-05 10:19:46 +0000
commit7a668370e350f602ec863eb4169729885e1c7c93 (patch)
tree61b7a61776964a9a94b575e4b4101ee8c28e5e2b /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
parent7be6ec66422e23705a8d8345675ee4c15bad3882 (diff)
Split ObjcProvider.framework_dir into static and dynamic framework directories.
Previously there was no difference between static and dynamic framework directories in how they affected link actions. However, there will be a difference moving forward: Dynamic framework files and their directories will be propagated up dynamic library edges, and static frameworks will not. (If an app A depends on a dylib B which depends on a dylib C, A should not link any static framework dependencies of C, but should link against C itself.) -- PiperOrigin-RevId: 140869357 MOS_MIGRATED_REVID=140869357
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.java21
1 files changed, 16 insertions, 5 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 667753d701..3c2bac6d4d 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
@@ -243,12 +243,22 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive
new Key<>(STABLE_ORDER, "root_merge_zip", Artifact.class);
/**
- * Exec paths of {@code .framework} directories corresponding to frameworks to link. These cause
- * -F arguments (framework search paths) to be added to each compile action, and -framework (link
- * framework) arguments to be added to each link action.
+ * Exec paths of {@code .framework} directories corresponding to static frameworks to link. These
+ * cause -F arguments (framework search paths) to be added to each compile action, and
+ * -framework (link framework) arguments to be added to each link action. These differ from
+ * dynamic frameworks in that they are statically linked into the binary.
*/
- public static final Key<PathFragment> FRAMEWORK_DIR =
+ public static final Key<PathFragment> STATIC_FRAMEWORK_DIR =
new Key<>(LINK_ORDER, "framework_dir", PathFragment.class);
+
+ /**
+ * Exec paths of {@code .framework} directories corresponding to dynamic frameworks to link. These
+ * cause -F arguments (framework search paths) to be added to each compile action, and
+ * -framework (link framework) arguments to be added to each link action. These differ from
+ * static frameworks in that they are not statically linked into the binary.
+ */
+ public static final Key<PathFragment> DYNAMIC_FRAMEWORK_DIR =
+ new Key<>(LINK_ORDER, "dynamic_framework_dir", PathFragment.class);
/**
* Exec paths of {@code .framework} directories corresponding to frameworks to include in search
@@ -382,11 +392,11 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive
BUNDLE_FILE,
BUNDLE_IMPORT_DIR,
DEFINE,
+ DYNAMIC_FRAMEWORK_DIR,
DYNAMIC_FRAMEWORK_FILE,
DEBUG_SYMBOLS,
DEBUG_SYMBOLS_PLIST,
EXPORTED_DEBUG_ARTIFACTS,
- FRAMEWORK_DIR,
FRAMEWORK_SEARCH_PATH_ONLY,
FORCE_LOAD_LIBRARY,
GENERAL_RESOURCE_DIR,
@@ -411,6 +421,7 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive
SDK_DYLIB,
SDK_FRAMEWORK,
SOURCE,
+ STATIC_FRAMEWORK_DIR,
STATIC_FRAMEWORK_FILE,
STORYBOARD,
STRINGS,