diff options
author | 2016-12-02 18:59:26 +0000 | |
---|---|---|
committer | 2016-12-05 10:19:46 +0000 | |
commit | 7a668370e350f602ec863eb4169729885e1c7c93 (patch) | |
tree | 61b7a61776964a9a94b575e4b4101ee8c28e5e2b /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java | |
parent | 7be6ec66422e23705a8d8345675ee4c15bad3882 (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.java | 21 |
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, |