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/ios/ios_sdk.gni") | 5 import("//build/config/ios/ios_sdk.gni") |
6 import("//build/config/mac/base_rules.gni") | 6 import("//build/config/mac/base_rules.gni") |
7 import("//build/config/mac/symbols.gni") | 7 import("//build/config/mac/symbols.gni") |
8 | 8 |
9 _toolchain_suffix = "" | |
10 _is_fat_build = additional_toolchains != [] | 9 _is_fat_build = additional_toolchains != [] |
11 if (_is_fat_build) { | 10 if (_is_fat_build) { |
12 _toolchain_suffix = "($default_toolchain)" | |
13 _is_fat_build_main_target = current_toolchain == default_toolchain | 11 _is_fat_build_main_target = current_toolchain == default_toolchain |
14 } | 12 } |
15 | 13 |
| 14 if (use_ios_simulator || ios_enable_code_signing) { |
| 15 _default_entitlements_path = "//build/config/ios/entitlements.plist" |
| 16 } |
| 17 |
16 # Generates Info.plist files for Mac apps and frameworks. | 18 # Generates Info.plist files for Mac apps and frameworks. |
17 # | 19 # |
18 # Arguments | 20 # Arguments |
19 # | 21 # |
20 # info_plist: | 22 # info_plist: |
21 # (optional) string, path to the Info.plist file that will be used for | 23 # (optional) string, path to the Info.plist file that will be used for |
22 # the bundle. | 24 # the bundle. |
23 # | 25 # |
24 # info_plist_target: | 26 # info_plist_target: |
25 # (optional) string, if the info_plist is generated from an action, | 27 # (optional) string, if the info_plist is generated from an action, |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 # The rest of the build, including the codesigning step, are the same for | 155 # The rest of the build, including the codesigning step, are the same for |
154 # thin and fat builds. | 156 # thin and fat builds. |
155 | 157 |
156 _executable_extra_deps = [] | 158 _executable_extra_deps = [] |
157 _executable_extra_inputs = [] | 159 _executable_extra_inputs = [] |
158 _executable_extra_ldflags = [] | 160 _executable_extra_ldflags = [] |
159 | 161 |
160 # Embeds the entitlements file if building for simulator. This is optional | 162 # Embeds the entitlements file if building for simulator. This is optional |
161 # with Xcode 7 or older but required with Xcode 8. This is not necessary for | 163 # with Xcode 7 or older but required with Xcode 8. This is not necessary for |
162 # device build as the entitlement is embedded via the codesigning step. | 164 # device build as the entitlement is embedded via the codesigning step. |
163 # | |
164 # As the generation of the entitlement depends on the | |
165 if (use_ios_simulator) { | 165 if (use_ios_simulator) { |
166 _generate_entitlements_target = _target_name + "_gen_entitlements" | 166 _generate_entitlements_target = _target_name + "_gen_entitlements" |
167 _generate_entitlements_target_with_toolchain_suffix = | 167 _generate_entitlements_target_with_toolchain_suffix = |
168 "$_generate_entitlements_target$_toolchain_suffix" | 168 "$_generate_entitlements_target($default_toolchain)" |
169 | 169 |
170 _generate_entitlements_output = | 170 _generate_entitlements_output = |
171 get_label_info(_generate_entitlements_target_with_toolchain_suffix, | 171 get_label_info(_generate_entitlements_target_with_toolchain_suffix, |
172 "target_gen_dir") + "/$_output_name.xcent" | 172 "target_gen_dir") + "/$_output_name.xcent" |
173 | 173 |
174 _executable_extra_inputs += [ _generate_entitlements_output ] | 174 _executable_extra_inputs += [ _generate_entitlements_output ] |
175 _executable_extra_deps += | 175 _executable_extra_deps += |
176 [ ":$_generate_entitlements_target_with_toolchain_suffix" ] | 176 [ ":$_generate_entitlements_target_with_toolchain_suffix" ] |
177 _executable_extra_ldflags += [ | 177 _executable_extra_ldflags += [ |
178 "-Xlinker", | 178 "-Xlinker", |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 libs += [ "UIKit.framework" ] | 230 libs += [ "UIKit.framework" ] |
231 } | 231 } |
232 } else { | 232 } else { |
233 # This is either a thin build or the default toolchain of a fat-build. | 233 # This is either a thin build or the default toolchain of a fat-build. |
234 # The template will expand in many different target ($target_name is the | 234 # The template will expand in many different target ($target_name is the |
235 # create_bundle target) used as input to the create_bundle target. | 235 # create_bundle target) used as input to the create_bundle target. |
236 _generate_info_plist = target_name + "_generate_info_plist" | 236 _generate_info_plist = target_name + "_generate_info_plist" |
237 _bundle_data_info_plist = target_name + "_bundle_data_info_plist" | 237 _bundle_data_info_plist = target_name + "_bundle_data_info_plist" |
238 | 238 |
239 if (use_ios_simulator || ios_enable_code_signing) { | 239 if (use_ios_simulator || ios_enable_code_signing) { |
240 _entitlements_path = "//build/config/ios/entitlements.plist" | 240 _entitlements_path = _default_entitlements_path |
241 if (defined(invoker.entitlements_path)) { | 241 if (defined(invoker.entitlements_path)) { |
242 _entitlements_path = invoker.entitlements_path | 242 _entitlements_path = invoker.entitlements_path |
243 } | 243 } |
244 } | 244 } |
245 | 245 |
246 ios_info_plist(_generate_info_plist) { | 246 ios_info_plist(_generate_info_plist) { |
247 visibility = [ ":$_bundle_data_info_plist" ] | 247 visibility = [ ":$_bundle_data_info_plist" ] |
248 if (use_ios_simulator) { | 248 if (use_ios_simulator) { |
249 visibility += [ ":$_generate_entitlements_target" ] | 249 visibility += [ ":$_generate_entitlements_target" ] |
250 } | 250 } |
(...skipping 29 matching lines...) Expand all Loading... |
280 _gen_info_plist_target, | 280 _gen_info_plist_target, |
281 ] | 281 ] |
282 sources = [ | 282 sources = [ |
283 _entitlements_path, | 283 _entitlements_path, |
284 _info_plist_path, | 284 _info_plist_path, |
285 ] | 285 ] |
286 outputs = [ | 286 outputs = [ |
287 _generate_entitlements_output, | 287 _generate_entitlements_output, |
288 ] | 288 ] |
289 args = [ | 289 args = [ |
| 290 "generate-entitlements", |
290 "-e=" + rebase_path(_entitlements_path, root_build_dir), | 291 "-e=" + rebase_path(_entitlements_path, root_build_dir), |
291 "generate-entitlements", | |
292 "-p=" + rebase_path(_info_plist_path, root_build_dir), | 292 "-p=" + rebase_path(_info_plist_path, root_build_dir), |
293 ] + rebase_path(outputs, root_build_dir) | 293 ] + rebase_path(outputs, root_build_dir) |
294 } | 294 } |
295 } | 295 } |
296 | 296 |
297 _link_executable = _target_name + "_executable" | 297 _link_executable = _target_name + "_executable" |
298 | 298 |
299 if (ios_enable_code_signing) { | 299 if (ios_enable_code_signing) { |
300 _link_executable_visibility = [ ":$_target_name" ] | 300 _link_executable_visibility = [ ":$_target_name" ] |
301 } else { | 301 } else { |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 | 532 |
533 if (ios_enable_code_signing) { | 533 if (ios_enable_code_signing) { |
534 code_signing_script = "//build/config/ios/codesign.py" | 534 code_signing_script = "//build/config/ios/codesign.py" |
535 code_signing_sources = [ | 535 code_signing_sources = [ |
536 _entitlements_path, | 536 _entitlements_path, |
537 "$target_out_dir/$_output_name", | 537 "$target_out_dir/$_output_name", |
538 ] | 538 ] |
539 code_signing_outputs = [ | 539 code_signing_outputs = [ |
540 "$bundle_root_dir/$_output_name", | 540 "$bundle_root_dir/$_output_name", |
541 "$bundle_root_dir/_CodeSignature/CodeResources", | 541 "$bundle_root_dir/_CodeSignature/CodeResources", |
542 "$bundle_root_dir/embedded.mobileprovision", | |
543 ] | 542 ] |
| 543 if (ios_code_signing_identity != "") { |
| 544 code_signing_outputs += |
| 545 [ "$bundle_root_dir/embedded.mobileprovision" ] |
| 546 } |
544 if (defined(invoker.extra_system_frameworks)) { | 547 if (defined(invoker.extra_system_frameworks)) { |
545 foreach(_framework, invoker.extra_system_frameworks) { | 548 foreach(_framework, invoker.extra_system_frameworks) { |
546 code_signing_outputs += [ "$bundle_root_dir/Frameworks/" + | 549 code_signing_outputs += [ "$bundle_root_dir/Frameworks/" + |
547 get_path_info(_framework, "file") ] | 550 get_path_info(_framework, "file") ] |
548 } | 551 } |
549 } | 552 } |
550 code_signing_args = [ | 553 code_signing_args = [ |
551 "-e=" + rebase_path(_entitlements_path, root_build_dir), | |
552 "code-sign-bundle", | 554 "code-sign-bundle", |
553 "-i=" + ios_code_signing_identity, | 555 "-i=" + ios_code_signing_identity, |
| 556 "-e=" + rebase_path(_entitlements_path, root_build_dir), |
554 "-b=" + rebase_path("$target_out_dir/$_output_name", root_build_dir), | 557 "-b=" + rebase_path("$target_out_dir/$_output_name", root_build_dir), |
555 rebase_path(bundle_root_dir, root_build_dir), | 558 rebase_path(bundle_root_dir, root_build_dir), |
556 ] | 559 ] |
557 if (defined(invoker.extra_system_frameworks)) { | 560 if (defined(invoker.extra_system_frameworks)) { |
558 # All framework in extra_system_frameworks are expected to be | 561 # All framework in extra_system_frameworks are expected to be |
559 # system framework and the path to be already system absolute | 562 # system framework and the path to be already system absolute |
560 # so do not use rebase_path here. | 563 # so do not use rebase_path here. |
561 foreach(_framework, invoker.extra_system_frameworks) { | 564 foreach(_framework, invoker.extra_system_frameworks) { |
562 code_signing_args += [ "-F=" + _framework ] | 565 code_signing_args += [ "-F=" + _framework ] |
563 } | 566 } |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
907 if (defined(visibility)) { | 910 if (defined(visibility)) { |
908 visibility += [ ":${_target_name}_shared_library($default_toolchain)" ] | 911 visibility += [ ":${_target_name}_shared_library($default_toolchain)" ] |
909 } | 912 } |
910 output_name = _output_name | 913 output_name = _output_name |
911 output_prefix_override = true | 914 output_prefix_override = true |
912 output_extension = "" | 915 output_extension = "" |
913 output_dir = "$target_out_dir/$_target_name" | 916 output_dir = "$target_out_dir/$_target_name" |
914 | 917 |
915 if (_has_public_headers) { | 918 if (_has_public_headers) { |
916 configs += [ | 919 configs += [ |
917 ":$_framework_headers_config$_toolchain_suffix", | 920 ":$_framework_headers_config($default_toolchain)", |
918 ":$_headers_map_config$_toolchain_suffix", | 921 ":$_headers_map_config($default_toolchain)", |
919 ] | 922 ] |
920 | 923 |
921 if (!defined(deps)) { | 924 if (!defined(deps)) { |
922 deps = [] | 925 deps = [] |
923 } | 926 } |
924 deps += [ ":$_framework_headers_target$_toolchain_suffix" ] | 927 deps += [ ":$_framework_headers_target($default_toolchain)" ] |
925 } | 928 } |
926 } | 929 } |
927 | 930 |
928 group(_target_name + "+link") { | 931 group(_target_name + "+link") { |
929 forward_variables_from(invoker, | 932 forward_variables_from(invoker, |
930 [ | 933 [ |
931 "visibility", | 934 "visibility", |
932 "testonly", | 935 "testonly", |
933 ]) | 936 ]) |
934 public_deps = [ | 937 public_deps = [ |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 output_prefix_override = true | 1082 output_prefix_override = true |
1080 output_extension = "" | 1083 output_extension = "" |
1081 | 1084 |
1082 if (!_is_fat_build) { | 1085 if (!_is_fat_build) { |
1083 output_dir = _shared_library_dir | 1086 output_dir = _shared_library_dir |
1084 } else { | 1087 } else { |
1085 output_dir = _arch_shared_library_dir | 1088 output_dir = _arch_shared_library_dir |
1086 } | 1089 } |
1087 | 1090 |
1088 if (_has_public_headers) { | 1091 if (_has_public_headers) { |
1089 configs += [ ":$_headers_map_config$_toolchain_suffix" ] | 1092 configs += [ ":$_headers_map_config($default_toolchain)" ] |
1090 | 1093 |
1091 if (!defined(deps)) { | 1094 if (!defined(deps)) { |
1092 deps = [] | 1095 deps = [] |
1093 } | 1096 } |
1094 deps += [ ":$_framework_headers_target$_toolchain_suffix" ] | 1097 deps += [ ":$_framework_headers_target($default_toolchain)" ] |
1095 } | 1098 } |
1096 } | 1099 } |
1097 | 1100 |
1098 if (_is_fat_build) { | 1101 if (_is_fat_build) { |
1099 action(_lipo_shared_library_target) { | 1102 action(_lipo_shared_library_target) { |
1100 forward_variables_from(invoker, [ "testonly" ]) | 1103 forward_variables_from(invoker, [ "testonly" ]) |
1101 visibility = _lipo_shared_library_visibility | 1104 visibility = _lipo_shared_library_visibility |
1102 script = "//build/toolchain/mac/linker_driver.py" | 1105 script = "//build/toolchain/mac/linker_driver.py" |
1103 outputs = [ | 1106 outputs = [ |
1104 "$_shared_library_dir/$_output_name", | 1107 "$_shared_library_dir/$_output_name", |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1267 if (!defined(deps)) { | 1270 if (!defined(deps)) { |
1268 deps = [] | 1271 deps = [] |
1269 } | 1272 } |
1270 | 1273 |
1271 if (_is_fat_build) { | 1274 if (_is_fat_build) { |
1272 deps += [ ":$_lipo_shared_library_target" ] | 1275 deps += [ ":$_lipo_shared_library_target" ] |
1273 } else { | 1276 } else { |
1274 deps += [ ":$_link_shared_library_target" ] | 1277 deps += [ ":$_link_shared_library_target" ] |
1275 } | 1278 } |
1276 | 1279 |
1277 _entitlements_path = "//build/config/ios/entitlements.plist" | 1280 _entitlements_path = _default_entitlements_path |
1278 if (defined(invoker.entitlements_path)) { | 1281 if (defined(invoker.entitlements_path)) { |
1279 _entitlements_path = invoker.entitlements_path | 1282 _entitlements_path = invoker.entitlements_path |
1280 } | 1283 } |
1281 | 1284 |
1282 code_signing_script = "//build/config/ios/codesign.py" | 1285 code_signing_script = "//build/config/ios/codesign.py" |
1283 code_signing_sources = [ | 1286 code_signing_sources = [ |
1284 _entitlements_path, | 1287 _entitlements_path, |
1285 "$_shared_library_dir/$_output_name", | 1288 "$_shared_library_dir/$_output_name", |
1286 ] | 1289 ] |
1287 code_signing_outputs = [ | 1290 code_signing_outputs = [ |
1288 "$bundle_root_dir/$_output_name", | 1291 "$bundle_root_dir/$_output_name", |
1289 "$bundle_root_dir/_CodeSignature/CodeResources", | 1292 "$bundle_root_dir/_CodeSignature/CodeResources", |
1290 "$bundle_root_dir/embedded.mobileprovision", | |
1291 ] | 1293 ] |
| 1294 if (ios_code_signing_identity != "") { |
| 1295 code_signing_outputs += |
| 1296 [ "$bundle_root_dir/embedded.mobileprovision" ] |
| 1297 } |
1292 code_signing_args = [ | 1298 code_signing_args = [ |
1293 "-e=" + rebase_path(_entitlements_path, root_build_dir), | |
1294 "code-sign-bundle", | 1299 "code-sign-bundle", |
1295 "-i=" + ios_code_signing_identity, | 1300 "-i=" + ios_code_signing_identity, |
| 1301 "-e=" + rebase_path(_entitlements_path, root_build_dir), |
1296 "-b=" + | 1302 "-b=" + |
1297 rebase_path("$_shared_library_dir/$_output_name", root_build_dir), | 1303 rebase_path("$_shared_library_dir/$_output_name", root_build_dir), |
1298 rebase_path(bundle_root_dir, root_build_dir), | 1304 rebase_path(bundle_root_dir, root_build_dir), |
1299 ] | 1305 ] |
1300 } | 1306 } |
1301 } | 1307 } |
1302 | 1308 |
1303 if (defined(_framework_version)) { | 1309 if (defined(_framework_version)) { |
1304 action(_target_name) { | 1310 action(_target_name) { |
1305 forward_variables_from(invoker, [ "testonly" ]) | 1311 forward_variables_from(invoker, [ "testonly" ]) |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 | 1560 |
1555 if (!ios_enable_code_signing) { | 1561 if (!ios_enable_code_signing) { |
1556 deps += [ ":$_xctest_loadable_module_bundle" ] | 1562 deps += [ ":$_xctest_loadable_module_bundle" ] |
1557 } else { | 1563 } else { |
1558 if (_is_fat_build) { | 1564 if (_is_fat_build) { |
1559 deps += [ ":$_xctest_lipo_loadable_module_target" ] | 1565 deps += [ ":$_xctest_lipo_loadable_module_target" ] |
1560 } else { | 1566 } else { |
1561 deps += [ ":$_xctest_loadable_module_target" ] | 1567 deps += [ ":$_xctest_loadable_module_target" ] |
1562 } | 1568 } |
1563 | 1569 |
1564 _entitlements_path = "//build/config/ios/entitlements.plist" | 1570 _entitlements_path = _default_entitlements_path |
1565 if (defined(invoker.entitlements_path)) { | 1571 if (defined(invoker.entitlements_path)) { |
1566 _entitlements_path = invoker.entitlements_path | 1572 _entitlements_path = invoker.entitlements_path |
1567 } | 1573 } |
1568 | 1574 |
1569 code_signing_script = "//build/config/ios/codesign.py" | 1575 code_signing_script = "//build/config/ios/codesign.py" |
1570 code_signing_sources = [ | 1576 code_signing_sources = [ |
1571 _entitlements_path, | 1577 _entitlements_path, |
1572 "$target_out_dir/$_xctest_output", | 1578 "$target_out_dir/$_xctest_output", |
1573 ] | 1579 ] |
1574 code_signing_outputs = [ | 1580 code_signing_outputs = [ |
1575 "$bundle_root_dir/$_xctest_output", | 1581 "$bundle_root_dir/$_xctest_output", |
1576 "$bundle_root_dir/_CodeSignature/CodeResources", | 1582 "$bundle_root_dir/_CodeSignature/CodeResources", |
1577 "$bundle_root_dir/embedded.mobileprovision", | |
1578 ] | 1583 ] |
| 1584 if (ios_code_signing_identity != "") { |
| 1585 code_signing_outputs += |
| 1586 [ "$bundle_root_dir/embedded.mobileprovision" ] |
| 1587 } |
1579 code_signing_args = [ | 1588 code_signing_args = [ |
1580 "-e=" + rebase_path(_entitlements_path, root_build_dir), | |
1581 "code-sign-bundle", | 1589 "code-sign-bundle", |
1582 "-i=" + ios_code_signing_identity, | 1590 "-i=" + ios_code_signing_identity, |
| 1591 "-e=" + rebase_path(_entitlements_path, root_build_dir), |
1583 "-b=" + | 1592 "-b=" + |
1584 rebase_path("$target_out_dir/$_xctest_output", root_build_dir), | 1593 rebase_path("$target_out_dir/$_xctest_output", root_build_dir), |
1585 rebase_path(bundle_root_dir, root_build_dir), | 1594 rebase_path(bundle_root_dir, root_build_dir), |
1586 ] | 1595 ] |
1587 } | 1596 } |
1588 } | 1597 } |
1589 | 1598 |
1590 bundle_data(_xctest_bundle) { | 1599 bundle_data(_xctest_bundle) { |
1591 visibility = [ ":$_host_target" ] | 1600 visibility = [ ":$_host_target" ] |
1592 public_deps = [ | 1601 public_deps = [ |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1639 "-rpath", | 1648 "-rpath", |
1640 "-Xlinker", | 1649 "-Xlinker", |
1641 "@loader_path/Frameworks", | 1650 "@loader_path/Frameworks", |
1642 ] | 1651 ] |
1643 } | 1652 } |
1644 } | 1653 } |
1645 | 1654 |
1646 set_defaults("ios_xctest_test") { | 1655 set_defaults("ios_xctest_test") { |
1647 configs = default_executable_configs | 1656 configs = default_executable_configs |
1648 } | 1657 } |
OLD | NEW |