OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//build/config/mac/base_rules.gni") | 5 import("//build/config/mac/base_rules.gni") |
6 | 6 |
7 # Generates Info.plist files for Mac apps and frameworks. | 7 # Generates Info.plist files for Mac apps and frameworks. |
8 # | 8 # |
9 # Arguments | 9 # Arguments |
10 # | 10 # |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 if (defined(invoker.output_name)) { | 251 if (defined(invoker.output_name)) { |
252 _output_name = invoker.output_name | 252 _output_name = invoker.output_name |
253 } | 253 } |
254 | 254 |
255 # If the framework is unversioned, the final _target_name will be the | 255 # If the framework is unversioned, the final _target_name will be the |
256 # create_bundle(_framework_target), otherwise an action with the name | 256 # create_bundle(_framework_target), otherwise an action with the name |
257 # _target_name will depends on the the create_bundle() in order to prepare | 257 # _target_name will depends on the the create_bundle() in order to prepare |
258 # the versioned directory structure. | 258 # the versioned directory structure. |
259 _framework_target = _target_name | 259 _framework_target = _target_name |
260 _framework_name = _output_name + ".framework" | 260 _framework_name = _output_name + ".framework" |
261 _framework_base_dir = "$root_out_dir/$_framework_name" | 261 _framework_root_dir = "$root_out_dir/$_framework_name" |
262 if (defined(invoker.framework_version) && invoker.framework_version != "") { | 262 if (defined(invoker.framework_version) && invoker.framework_version != "") { |
263 _framework_version = invoker.framework_version | 263 _framework_version = invoker.framework_version |
264 _framework_root_dir = _framework_base_dir + "/Versions/$_framework_version" | 264 _framework_root_dir += "/Versions/$_framework_version" |
265 _framework_target = _target_name + "_create_bundle" | 265 _framework_target = _target_name + "_create_bundle" |
266 } else { | |
267 _framework_root_dir = _framework_base_dir | |
268 } | 266 } |
269 | 267 |
270 _link_shared_library_target = target_name + "_shared_library" | 268 _link_shared_library_target = target_name + "_shared_library" |
271 _shared_library_bundle_data = target_name + "_shared_library_bundle_data" | 269 _shared_library_bundle_data = target_name + "_shared_library_bundle_data" |
272 | 270 |
273 shared_library(_link_shared_library_target) { | 271 shared_library(_link_shared_library_target) { |
274 forward_variables_from(invoker, | 272 forward_variables_from(invoker, |
275 "*", | 273 "*", |
276 [ | 274 [ |
277 "assert_no_deps", | 275 "assert_no_deps", |
(...skipping 19 matching lines...) Expand all Loading... |
297 "$target_out_dir/$_link_shared_library_target/$_output_name", | 295 "$target_out_dir/$_link_shared_library_target/$_output_name", |
298 ] | 296 ] |
299 outputs = [ | 297 outputs = [ |
300 "{{bundle_executable_dir}}/$_output_name", | 298 "{{bundle_executable_dir}}/$_output_name", |
301 ] | 299 ] |
302 public_deps = [ | 300 public_deps = [ |
303 ":$_link_shared_library_target", | 301 ":$_link_shared_library_target", |
304 ] | 302 ] |
305 } | 303 } |
306 | 304 |
307 # Clean the entire framework if the framework_version changes. | |
308 _version_arg = "" | |
309 if (defined(_framework_version)) { | |
310 _version_arg = _framework_version | |
311 } | |
312 _version_file = "$target_out_dir/${target_name}_version" | |
313 exec_script("//build/config/mac/prepare_framework_version.py", | |
314 [ | |
315 rebase_path(_version_file), | |
316 rebase_path(_framework_base_dir), | |
317 "'$_version_arg'", | |
318 ]) | |
319 | |
320 _framework_public_config = _target_name + "_public_config" | 305 _framework_public_config = _target_name + "_public_config" |
321 config(_framework_public_config) { | 306 config(_framework_public_config) { |
322 # TODO(sdefresne): should we have a framework_dirs similar to lib_dirs | 307 # TODO(sdefresne): should we have a framework_dirs similar to lib_dirs |
323 # and include_dirs to avoid duplicate values on the command-line. | 308 # and include_dirs to avoid duplicate values on the command-line. |
324 visibility = [ ":$_framework_target" ] | 309 visibility = [ ":$_framework_target" ] |
325 ldflags = [ | 310 ldflags = [ |
326 "-F", | 311 "-F", |
327 rebase_path("$root_out_dir/.", root_build_dir), | 312 rebase_path("$root_out_dir/.", root_build_dir), |
328 ] | 313 ] |
329 lib_dirs = [ root_out_dir ] | 314 lib_dirs = [ root_out_dir ] |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 ]) | 632 ]) |
648 if (!defined(deps)) { | 633 if (!defined(deps)) { |
649 deps = [] | 634 deps = [] |
650 } | 635 } |
651 deps += [ ":$_loadable_module_bundle_data" ] | 636 deps += [ ":$_loadable_module_bundle_data" ] |
652 | 637 |
653 bundle_root_dir = "$root_out_dir/$_output_name.plugin/Contents" | 638 bundle_root_dir = "$root_out_dir/$_output_name.plugin/Contents" |
654 bundle_executable_dir = "$bundle_root_dir/MacOS" | 639 bundle_executable_dir = "$bundle_root_dir/MacOS" |
655 } | 640 } |
656 } | 641 } |
OLD | NEW |