Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: build/config/ios/rules.gni

Issue 1797323002: [iOS] Use output_name to configure the application name in "app" template. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@assert_no_deps
Patch Set: Rebase on origin/master Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ios/web/shell/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 6
7 # TODO(crbug.com/297668): refactor this template to extract common behaviour 7 # TODO(crbug.com/297668): refactor this template to extract common behaviour
8 # between OS X and iOS bundle generation, then create a generic "app" template 8 # between OS X and iOS bundle generation, then create a generic "app" template
9 # that forward to "executable" on all platform except iOS/OS X. 9 # that forward to "executable" on all platform except iOS/OS X.
10 10
11 # Template to build an application bundle for iOS. 11 # Template to build an application bundle for iOS.
12 # 12 #
13 # This should be used instead of "executable" built-in target type on iOS. 13 # This should be used instead of "executable" built-in target type on iOS.
14 # As the template forward the generation of the application executable to 14 # As the template forward the generation of the application executable to
15 # an "executable" target, all arguments supported by "executable" targets 15 # an "executable" target, all arguments supported by "executable" targets
16 # are also supported by this template. 16 # are also supported by this template.
17 # 17 #
18 # Arguments 18 # Arguments
19 # 19 #
20 # app_name: 20 # output_name:
21 # (optional) string, name of the generated application, if omitted, 21 # (optional) string, name of the generated application, if omitted,
22 # defaults to the target_name. 22 # defaults to the target_name.
23 # 23 #
24 # extra_substitutions: 24 # extra_substitutions:
25 # (optional) list of string in "key=value" format, each value will 25 # (optional) list of string in "key=value" format, each value will
26 # be used as an additional variable substitution rule when generating 26 # be used as an additional variable substitution rule when generating
27 # the application Info.plist 27 # the application Info.plist
28 # 28 #
29 # info_plist: 29 # info_plist:
30 # path to the template to use to generate the application Info.plist 30 # path to the template to use to generate the application Info.plist
31 # by performing variable substitutions. 31 # by performing variable substitutions.
32 # 32 #
33 # For more information, see "gn help executable". 33 # For more information, see "gn help executable".
34 template("app") { 34 template("app") {
35 assert(defined(invoker.info_plist), 35 assert(defined(invoker.info_plist),
36 "info_plist must be specified for target $target_name") 36 "info_plist must be specified for target $target_name")
37 37
38 _app_name = target_name 38 _output_name = target_name
39 _target_name = target_name 39 _target_name = target_name
40 if (defined(invoker.app_name)) { 40 if (defined(invoker.output_name)) {
41 _app_name = invoker.app_name 41 _output_name = invoker.output_name
42 } 42 }
43 43
44 _generate_info_plist = target_name + "_generate_info_plist" 44 _generate_info_plist = target_name + "_generate_info_plist"
45 _bundle_data_info_plist = target_name + "_bundle_data_info_plist" 45 _bundle_data_info_plist = target_name + "_bundle_data_info_plist"
46 46
47 action(_generate_info_plist) { 47 action(_generate_info_plist) {
48 visibility = [ ":$_bundle_data_info_plist" ] 48 visibility = [ ":$_bundle_data_info_plist" ]
49 script = "//build/config/ios/ios_gen_plist.py" 49 script = "//build/config/ios/ios_gen_plist.py"
50 sources = [ 50 sources = [
51 "//build/config/ios/BuildInfo.plist", 51 "//build/config/ios/BuildInfo.plist",
52 invoker.info_plist, 52 invoker.info_plist,
53 ] 53 ]
54 outputs = [ 54 outputs = [
55 "$target_gen_dir/$target_name/Info.plist", 55 "$target_gen_dir/$target_name/Info.plist",
56 ] 56 ]
57 extra_args = [] 57 extra_args = []
58 if (defined(invoker.extra_substitutions)) { 58 if (defined(invoker.extra_substitutions)) {
59 foreach(substitution, invoker.extra_substitutions) { 59 foreach(substitution, invoker.extra_substitutions) {
60 extra_args += [ "-s=$substitution" ] 60 extra_args += [ "-s=$substitution" ]
61 } 61 }
62 } 62 }
63 response_file_contents = 63 response_file_contents =
64 extra_args + [ 64 extra_args + [
65 "-s=BUILD_MACHINE_OS_BUILD=$machine_os_build", 65 "-s=BUILD_MACHINE_OS_BUILD=$machine_os_build",
66 "-s=EXECUTABLE_NAME=$_app_name", 66 "-s=EXECUTABLE_NAME=$_output_name",
67 "-s=GCC_VERSION=com.apple.compilers.llvm.clang.1_0", 67 "-s=GCC_VERSION=com.apple.compilers.llvm.clang.1_0",
68 "-s=IOS_DEPLOYMENT_TARGET=$ios_deployment_target", 68 "-s=IOS_DEPLOYMENT_TARGET=$ios_deployment_target",
69 "-s=IOS_PLATFORM_BUILD=$ios_platform_build", 69 "-s=IOS_PLATFORM_BUILD=$ios_platform_build",
70 "-s=IOS_PLATFORM_NAME=$ios_sdk_name", 70 "-s=IOS_PLATFORM_NAME=$ios_sdk_name",
71 "-s=IOS_PLATFORM_VERSION=$ios_sdk_version", 71 "-s=IOS_PLATFORM_VERSION=$ios_sdk_version",
72 "-s=IOS_SDK_BUILD=$ios_sdk_build", 72 "-s=IOS_SDK_BUILD=$ios_sdk_build",
73 "-s=IOS_SDK_NAME=$ios_sdk_name$ios_sdk_version", 73 "-s=IOS_SDK_NAME=$ios_sdk_name$ios_sdk_version",
74 "-s=IOS_SUPPORTED_PLATFORM=$ios_sdk_platform", 74 "-s=IOS_SUPPORTED_PLATFORM=$ios_sdk_platform",
75 "-s=PRODUCT_NAME=$_app_name", 75 "-s=PRODUCT_NAME=$_output_name",
76 "-s=XCODE_BUILD=$xcode_build", 76 "-s=XCODE_BUILD=$xcode_build",
77 "-s=XCODE_VERSION=$xcode_version", 77 "-s=XCODE_VERSION=$xcode_version",
78 "-o=" + rebase_path(outputs[0], root_build_dir), 78 "-o=" + rebase_path(outputs[0], root_build_dir),
79 ] + rebase_path(sources, root_build_dir) 79 ] + rebase_path(sources, root_build_dir)
80 args = [ "@{{response_file_name}}" ] 80 args = [ "@{{response_file_name}}" ]
81 } 81 }
82 82
83 bundle_data(_bundle_data_info_plist) { 83 bundle_data(_bundle_data_info_plist) {
84 forward_variables_from(invoker, [ "testonly" ]) 84 forward_variables_from(invoker, [ "testonly" ])
85 visibility = [ ":$_target_name" ] 85 visibility = [ ":$_target_name" ]
86 sources = get_target_outputs(":$_generate_info_plist") 86 sources = get_target_outputs(":$_generate_info_plist")
87 outputs = [ 87 outputs = [
88 "{{bundle_root_dir}}/Info.plist", 88 "{{bundle_root_dir}}/Info.plist",
89 ] 89 ]
90 public_deps = [ 90 public_deps = [
91 ":$_generate_info_plist", 91 ":$_generate_info_plist",
92 ] 92 ]
93 } 93 }
94 94
95 _generate_executable = target_name + "_generate_executable" 95 _generate_executable = target_name + "_generate_executable"
96 _bundle_data_executable = target_name + "_bundle_data_executable" 96 _bundle_data_executable = target_name + "_bundle_data_executable"
97 97
98 executable(_generate_executable) { 98 executable(_generate_executable) {
99 visibility = [ ":$_bundle_data_executable" ] 99 visibility = [ ":$_bundle_data_executable" ]
100 forward_variables_from(invoker, 100 forward_variables_from(invoker,
101 "*", 101 "*",
102 [ 102 [
103 "app_name", 103 "output_name",
104 "code_signing_identity", 104 "code_signing_identity",
105 "data_deps", 105 "data_deps",
106 "entitlements_path", 106 "entitlements_path",
107 "info_plist", 107 "info_plist",
108 "visibility", 108 "visibility",
109 ]) 109 ])
110 110
111 output_name = rebase_path("$target_gen_dir/$_app_name", root_build_dir) 111 output_name = rebase_path("$target_gen_dir/$_output_name", root_build_dir)
112 if (!defined(libs)) { 112 if (!defined(libs)) {
113 libs = [] 113 libs = []
114 } 114 }
115 libs += [ "UIKit.framework" ] 115 libs += [ "UIKit.framework" ]
116 } 116 }
117 117
118 bundle_data(_bundle_data_executable) { 118 bundle_data(_bundle_data_executable) {
119 forward_variables_from(invoker, [ "testonly" ]) 119 forward_variables_from(invoker, [ "testonly" ])
120 visibility = [ ":$_target_name" ] 120 visibility = [ ":$_target_name" ]
121 sources = [ 121 sources = [
122 "$target_gen_dir/$_app_name", 122 "$target_gen_dir/$_output_name",
123 ] 123 ]
124 outputs = [ 124 outputs = [
125 "{{bundle_executable_dir}}/$_app_name", 125 "{{bundle_executable_dir}}/$_output_name",
126 ] 126 ]
127 public_deps = [ 127 public_deps = [
128 ":$_generate_executable", 128 ":$_generate_executable",
129 ] 129 ]
130 } 130 }
131 131
132 create_bundle(target_name) { 132 create_bundle(target_name) {
133 forward_variables_from(invoker, 133 forward_variables_from(invoker,
134 [ 134 [
135 "data_deps", 135 "data_deps",
(...skipping 11 matching lines...) Expand all
147 ":$_bundle_data_info_plist", 147 ":$_bundle_data_info_plist",
148 ] 148 ]
149 149
150 if (use_ios_simulator) { 150 if (use_ios_simulator) {
151 if (!defined(data_deps)) { 151 if (!defined(data_deps)) {
152 data_deps = [] 152 data_deps = []
153 } 153 }
154 data_deps += [ "//testing/iossim(${host_toolchain})" ] 154 data_deps += [ "//testing/iossim(${host_toolchain})" ]
155 } 155 }
156 156
157 bundle_root_dir = "$root_out_dir/$_app_name.app" 157 bundle_root_dir = "$root_out_dir/$_output_name.app"
158 bundle_resources_dir = bundle_root_dir 158 bundle_resources_dir = bundle_root_dir
159 bundle_executable_dir = bundle_root_dir 159 bundle_executable_dir = bundle_root_dir
160 bundle_plugins_dir = "$bundle_root_dir/Plugins" 160 bundle_plugins_dir = "$bundle_root_dir/Plugins"
161 } 161 }
162 162
163 # TODO(crbug.com/297668): 163 # TODO(crbug.com/297668):
164 # - add support for codesigning, 164 # - add support for codesigning,
165 # - find a way to make "ninja -C out/Default base_unittests.app" work as 165 # - find a way to make "ninja -C out/Default base_unittests.app" work as
166 # an alias to "ninja -C out/Default base_unittests" (for convenience 166 # an alias to "ninja -C out/Default base_unittests" (for convenience
167 # and compatibility with gyp), 167 # and compatibility with gyp),
168 } 168 }
OLDNEW
« no previous file with comments | « no previous file | ios/web/shell/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698