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

Side by Side Diff: components/cronet/ios/BUILD.gn

Issue 2807283002: [Cronet] Build static libcronet.a for iOS with complete dependencies. (Closed)
Patch Set: Sync Created 3 years, 7 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 | components/cronet/ios/cronet_consumer/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/buildflag_header.gni") 5 import("//build/buildflag_header.gni")
6 import("//build/config/ios/rules.gni") 6 import("//build/config/ios/rules.gni")
7 import("//build/config/mac/symbols.gni") 7 import("//build/config/mac/symbols.gni")
8 import("//build/mac/tweak_info_plist.gni") 8 import("//build/mac/tweak_info_plist.gni")
9 import("//build/util/process_version.gni") 9 import("//build/util/process_version.gni")
10 import("//build/util/version.gni") 10 import("//build/util/version.gni")
(...skipping 14 matching lines...) Expand all
25 sources = [ 25 sources = [
26 "//chrome/VERSION", 26 "//chrome/VERSION",
27 ] 27 ]
28 output = "$target_gen_dir/version.h" 28 output = "$target_gen_dir/version.h"
29 extra_args = [ 29 extra_args = [
30 "-e", 30 "-e",
31 "VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)", 31 "VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)",
32 ] 32 ]
33 } 33 }
34 34
35 _cronet_deps = [
36 ":cronet_version_header",
37 ":generate_accept_languages",
38 "//base:base",
39 "//components/grpc_support",
40 "//components/metrics:metrics",
41 "//components/metrics/proto:proto",
42 "//components/prefs:prefs",
43 "//ios/net:net",
44 "//ios/web:user_agent",
45 "//net",
46 "//url",
47 ]
48
49 _cronet_sources = [
50 "../histogram_manager.cc",
51 "../histogram_manager.h",
52 "../stale_host_resolver.cc",
53 "../stale_host_resolver.h",
54 "../url_request_context_config.cc",
55 "../url_request_context_config.h",
56 "Cronet.h",
57 "Cronet.mm",
58 "cronet_c_for_grpc.h",
59 "cronet_environment.h",
60 "cronet_environment.mm",
61 ]
62
35 source_set("cronet_sources") { 63 source_set("cronet_sources") {
36 deps = [ 64 deps = _cronet_deps
37 ":cronet_version_header",
38 ":generate_accept_languages",
39 "//base:base",
40 "//components/grpc_support",
41 "//components/metrics:metrics",
42 "//components/metrics/proto:proto",
43 "//components/prefs:prefs",
44 "//ios/net:net",
45 "//ios/web:user_agent",
46 "//net",
47 "//url",
48 ]
49 65
50 sources = [ 66 sources = _cronet_sources
51 "../histogram_manager.cc",
52 "../histogram_manager.h",
53 "../stale_host_resolver.cc",
54 "../stale_host_resolver.h",
55 "../url_request_context_config.cc",
56 "../url_request_context_config.h",
57 "Cronet.h",
58 "Cronet.mm",
59 "cronet_c_for_grpc.h",
60 "cronet_environment.h",
61 "cronet_environment.mm",
62 ]
63 67
64 include_dirs = [ "//components/grpc_support/include" ] 68 include_dirs = [ "//components/grpc_support/include" ]
65 69
66 if (!use_platform_icu_alternatives) { 70 if (!use_platform_icu_alternatives) {
67 deps += [ "//base:i18n" ] 71 deps += [ "//base:i18n" ]
68 } 72 }
69 } 73 }
70 74
71 # Tweak |info_plist| with current version and revision. 75 # Tweak |info_plist| with current version and revision.
72 tweak_info_plist("tweak_cronet_plist") { 76 tweak_info_plist("tweak_cronet_plist") {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 script = "//components/cronet/tools/generate_accept_languages.py" 134 script = "//components/cronet/tools/generate_accept_languages.py"
131 args = [ 135 args = [
132 rebase_path("$target_gen_dir"), 136 rebase_path("$target_gen_dir"),
133 rebase_path("//"), 137 rebase_path("//"),
134 ] 138 ]
135 outputs = [ 139 outputs = [
136 "$target_gen_dir/accept_languages_table.h", 140 "$target_gen_dir/accept_languages_table.h",
137 ] 141 ]
138 } 142 }
139 143
144 # A static library which contains just _cronet_sources.
145 static_library("cronet_static") {
Robert Sesek 2017/05/19 20:01:41 Why not use a public_deps on :cronet_sources ?
mef 2017/05/22 15:12:30 Hrm, I'm not sure what that means. I'll reach out
146 deps = _cronet_deps
147
148 sources = _cronet_sources
149
150 visibility = [ ":*" ]
151
152 include_dirs = [ "//components/grpc_support/include" ]
153
154 public_deps = [
155 "//components/grpc_support",
156 ]
157
158 public_headers = [
159 "Cronet.h",
160 "cronet_c_for_grpc.h",
161 ]
162 public_headers += grpc_public_headers
163 }
164
165 # A static library which contains all dependencies of :cronet_static.
166 static_library("cronet_deps_complete") {
167 visibility = [ ":*" ]
168 complete_static_lib = true
169 deps = [
170 ":cronet_static",
171 ]
172 }
173
174 # A static library which contains cronet and all dependendencies hidden inside.
175 action("cronet_hide") {
176 script = "//components/cronet/tools/hide_symbols.py"
177 deps = [
178 ":cronet_deps_complete",
179 ":cronet_static",
180 ]
181 outputs = [
182 "$target_out_dir/$current_cpu/libcronet_hide.a",
183 ]
184 args = [
185 "--input_libs",
186 rebase_path("$target_out_dir/libcronet_static.a", root_build_dir),
187 "--deps_lib",
188 rebase_path("$target_out_dir/libcronet_deps_complete.a", root_build_dir),
189 "--output_obj",
190 rebase_path("$target_out_dir/$current_cpu/libcronet_hide.o",
191 root_build_dir),
192 "--output_lib",
193 rebase_path("$target_out_dir/$current_cpu/libcronet_hide.a",
194 root_build_dir),
195 "--current_cpu",
196 current_cpu,
197 ]
198 }
199
200 # A fat static library which exports cronet public symbols and hides all depende ndencies.
201 lipo_binary("libcronet") {
202 arch_binary_target = ":cronet_hide"
203 arch_binary_output = "libcronet_hide.a"
204 output_name = "libcronet.a"
205 enable_stripping = false
206 enable_dsyms = false
207 }
208
140 if (additional_toolchains == [] || current_toolchain == default_toolchain) { 209 if (additional_toolchains == [] || current_toolchain == default_toolchain) {
141 _package_dir = "$root_out_dir/cronet" 210 _package_dir = "$root_out_dir/cronet"
142 211
143 action("generate_license") { 212 action("generate_license") {
144 _license_path = "$_package_dir/LICENSE" 213 _license_path = "$_package_dir/LICENSE"
145 214
146 script = "//components/cronet/tools/cronet_licenses.py" 215 script = "//components/cronet/tools/cronet_licenses.py"
147 inputs = [ 216 inputs = [
148 "//build/util/LASTCHANGE", 217 "//build/util/LASTCHANGE",
149 "//buildtools/$host_os/gn", 218 "//buildtools/$host_os/gn",
150 ] 219 ]
151 outputs = [ 220 outputs = [
152 _license_path, 221 _license_path,
153 ] 222 ]
154 args = [ 223 args = [
155 "license", 224 "license",
156 rebase_path(_license_path, root_build_dir), 225 rebase_path(_license_path, root_build_dir),
157 "--gn", 226 "--gn",
158 "--gn-path", 227 "--gn-path",
159 rebase_path("//buildtools/$host_os/gn", root_build_dir), 228 rebase_path("//buildtools/$host_os/gn", root_build_dir),
160 ] 229 ]
161 } 230 }
162 231
163 copy("cronet_package_copy") { 232 copy("cronet_package_copy") {
164 sources = [ 233 sources = [
165 "$root_out_dir/Cronet.framework", 234 "$root_out_dir/Cronet.framework",
235 "$target_out_dir/libcronet.a",
166 "//AUTHORS", 236 "//AUTHORS",
167 "//chrome/VERSION", 237 "//chrome/VERSION",
168 ] 238 ]
169 outputs = [ 239 outputs = [
170 "$_package_dir/{{source_file_part}}", 240 "$_package_dir/{{source_file_part}}",
171 ] 241 ]
172 242
173 deps = [ 243 deps = [
174 ":cronet_framework", 244 ":cronet_framework",
245 ":libcronet",
175 ] 246 ]
176 } 247 }
177 248
178 if (enable_dsyms) { 249 if (enable_dsyms) {
179 action("cronet_dsym_archive") { 250 action("cronet_dsym_archive") {
180 script = "//chrome/tools/build/mac/archive_symbols.py" 251 script = "//chrome/tools/build/mac/archive_symbols.py"
181 252
182 # These are the dSYMs that will be archived. The sources list must be 253 # These are the dSYMs that will be archived. The sources list must be
183 # the target outputs that correspond to the dSYMs (since a dSYM is a 254 # the target outputs that correspond to the dSYMs (since a dSYM is a
184 # directory it cannot be listed as a source file). The targets that 255 # directory it cannot be listed as a source file). The targets that
(...skipping 23 matching lines...) Expand all
208 } 279 }
209 280
210 group("cronet_package") { 281 group("cronet_package") {
211 deps = [ 282 deps = [
212 ":cronet_dsym_archive", 283 ":cronet_dsym_archive",
213 ":cronet_package_copy", 284 ":cronet_package_copy",
214 ":generate_license", 285 ":generate_license",
215 ] 286 ]
216 } 287 }
217 } 288 }
OLDNEW
« no previous file with comments | « no previous file | components/cronet/ios/cronet_consumer/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698