Index: build/config/mac/rules.gni |
diff --git a/build/config/mac/rules.gni b/build/config/mac/rules.gni |
index 721271e6cf3c8a63ac113ae0e066f06c9e28bb4d..522747ef131c75631eb180807fccafcb86b16e97 100644 |
--- a/build/config/mac/rules.gni |
+++ b/build/config/mac/rules.gni |
@@ -5,7 +5,13 @@ |
import("//build/toolchain/toolchain.gni") |
import("//build/config/mac/mac_sdk.gni") |
-# This is used as the base template for both iOS and Mac frameworks.. |
+# This is used as the base template for both iOS and Mac frameworks. |
+# |
+# By default, the bundle target this template generates does not link the |
brettw
2016/04/21 20:27:55
This seems like it would work in the other place.
Robert Sesek
2016/04/22 15:27:06
Done.
|
+# resulting framework into anything that depends on it. If a dependency wants |
+# a link-time (as well as build-time) dependency on the framework bundle, |
+# depend against "$target_name+link". If only the build-time dependency is |
+# required (e.g., for copying into another bundle), then use "$target_name". |
# |
# Arguments |
# |
@@ -80,10 +86,7 @@ template("framework_bundle") { |
# TODO(sdefresne): should we have a framework_dirs similar to lib_dirs |
# and include_dirs to avoid duplicate values on the command-line. |
visibility = [ ":$_framework_target" ] |
- common_flags = [ "-F" + rebase_path("$root_out_dir/.", root_out_dir) ] |
- cflags_objc = common_flags |
sdefresne
2016/04/22 07:59:48
I think we need -F in cflags_objc/cflags_objcc whe
Robert Sesek
2016/04/22 15:27:06
I moved that to the ios/rules.gni config since Mac
|
- cflags_objcc = common_flags |
- ldflags = common_flags |
+ ldflags = [ "-F" + rebase_path("$root_out_dir/.", root_out_dir) ] |
lib_dirs = [ root_out_dir ] |
libs = [ _framework_name ] |
} |
@@ -100,7 +103,10 @@ template("framework_bundle") { |
if (defined(_framework_version)) { |
visibility = [ ":$_target_name" ] |
} else { |
- forward_variables_from(invoker, [ "visibility" ]) |
+ if (defined(invoker.visibility)) { |
+ visibility = invoker.visibility |
+ visibility += [ ":$_target_name+link" ] |
+ } |
} |
if (!defined(public_deps)) { |
@@ -108,8 +114,6 @@ template("framework_bundle") { |
} |
public_deps += [ ":$_shared_library_bundle_data" ] |
- public_configs = [ ":$_framework_public_config" ] |
- |
bundle_root_dir = _framework_root_dir |
bundle_resources_dir = "$bundle_root_dir/Resources" |
bundle_executable_dir = "$bundle_root_dir" |
@@ -117,11 +121,13 @@ template("framework_bundle") { |
if (defined(_framework_version)) { |
action(_target_name) { |
- forward_variables_from(invoker, |
- [ |
- "visibility", |
- "testonly", |
- ]) |
+ forward_variables_from(invoker, [ "testonly" ]) |
+ |
+ if (defined(invoker.visibility)) { |
+ visibility = invoker.visibility |
+ visibility += [ ":$_target_name+link" ] |
+ } |
+ |
script = "$root_out_dir/gyp-mac-tool" |
outputs = [ |
"$root_out_dir/$_framework_name/Versions/Current", |
@@ -136,6 +142,18 @@ template("framework_bundle") { |
] |
} |
} |
+ |
+ group(_target_name + "+link") { |
+ forward_variables_from(invoker, |
+ [ |
+ "visibility", |
+ "testonly", |
+ ]) |
+ public_deps = [ |
+ ":$_target_name", |
+ ] |
+ public_configs = [ ":$_framework_public_config" ] |
+ } |
} |
# Template to combile .xib or .storyboard files. |