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

Side by Side Diff: chrome/installer/util/BUILD.gn

Issue 1545803002: Use .rc strings in fewer places for installer util. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 | « chrome/installer/test/BUILD.gn ('k') | chrome/tools/crash_service/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 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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/chrome_build.gni") 5 import("//build/config/chrome_build.gni")
6 import("//testing/test.gni") 6 import("//testing/test.gni")
7 7
8 # Generally you should depend on this target, see below for discussion. 8 # This file deliberately has no default "util" target so dependants have to
9 group("util") { 9 # specify with the ":with_no_strings" or ":with_rc_strings" variants. Random
10 public_deps = [ 10 # code that ends up getting linked into chrome proper should depend on the
11 ":with_no_strings_some_things_wont_work", 11 # ":with_no_strings" variant. Other standalone apps will need to decide if they
12 ] 12 # need the resource strings or not.
13 if (is_win) { 13 #
14 public_deps += [ ":strings" ]
15 }
16 }
17
18 # chrome/installer/util has generated strings on Windows. These appear as 14 # chrome/installer/util has generated strings on Windows. These appear as
19 # Windows resources and are fairly large (~200KB). They are generated by the 15 # Windows resources and are fairly large (~200KB). They are generated by the
20 # ":generate_strings" target and compiled by the ":strings" target. 16 # ":generate_strings" target and compiled by the ":strings" target.
21 # 17 #
22 # Some code, like the Windows chrome.exe (the small bootstrap binary, not 18 # Some code, like the Windows chrome.exe (the small bootstrap binary, not
23 # all of chrome.dll) code uses installer_util functions without calling any 19 # all of chrome.dll) code uses installer_util functions without calling any
24 # functions that use the strings. And historically in the GYP build the strings 20 # functions that use the strings. And historically in the GYP build the strings
25 # resource had to be manually linked, so the strings never ended up being in 21 # resource had to be manually linked, so the strings never ended up being in
26 # chrome.exe and everything was fine. 22 # chrome.exe and everything was fine.
27 # 23 #
28 # However, this is obviously a fragile and confusing situation. If you depend 24 # Other code, like chrome.dll links to installer util, and hooks up a
29 # on this target rather than going through the ":util" version that links the 25 # TranslationDelegate which overrides the strings retrieved from the resources
30 # strings above, anything that uses localized strings won't work. There is 26 # with grit pak strings.
31 # no definition of what works and doesn't work, and this may also change over 27 #
32 # time. As an example at the time of this writing, chrome.exe calls 28 # In both of these cases, link to the ":with_no_strings" variant. However, this
33 # BrowserDistribution::GetRegistryPath. This function doesn't use any strings, 29 # is obviously a fragile and confusing situation. In the "I don't use strings
34 # but lots of other functions in BrowserDistribution do use localized strings. 30 # at all case", there is no definition of what works and doesn't work, and this
31 # may also change over time. As an example at the time of this writing,
32 # chrome.exe calls BrowserDistribution::GetRegistryPath. This function doesn't
33 # use any strings, but lots of other functions in BrowserDistribution do use
34 # localized strings.
35 # 35 #
36 # Ideally, this should be cleaved in two parts: the main "installer util" and 36 # Ideally, this should be cleaved in two parts: the main "installer util" and
37 # some kind of mini installer util that just contains the functions needed by 37 # some kind of mini installer util that just contains the functions needed by
38 # chrome.exe and any other clients that don't need the strings. 38 # chrome.exe and any other clients that don't need the strings. It's likely
39 static_library("with_no_strings_some_things_wont_work") { 39 # we would still need the variant with no strings for when chrome.dll replaces
40 # all strings with its own versions.
41 static_library("with_no_strings") {
40 deps = [ 42 deps = [
41 "//base", 43 "//base",
42 "//chrome:strings", 44 "//chrome:strings",
43 "//chrome/common:constants", 45 "//chrome/common:constants",
44 "//components/variations", 46 "//components/variations",
45 "//content/public/common:result_codes", 47 "//content/public/common:result_codes",
46 ] 48 ]
47 49
48 # The constants target checks the Chrome distribution from this target. Both 50 # The constants target checks the Chrome distribution from this target. Both
49 # targets have to be linked together in practice. 51 # targets have to be linked together in practice.
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 } else { 216 } else {
215 sources = [ 217 sources = [
216 "master_preferences.cc", 218 "master_preferences.cc",
217 "master_preferences.h", 219 "master_preferences.h",
218 "master_preferences_constants.cc", 220 "master_preferences_constants.cc",
219 "master_preferences_constants.h", 221 "master_preferences_constants.h",
220 ] 222 ]
221 } 223 }
222 } 224 }
223 225
226 # Use this version of installer_util to link to the generated strings in .rc
227 # format.
228 group("with_rc_strings") {
229 public_deps = [
230 ":with_no_strings",
231 ]
232 if (is_win) {
233 public_deps += [ ":strings" ]
234 }
235 }
236
224 action("generate_strings") { 237 action("generate_strings") {
225 visibility = [ 238 visibility = [
226 ":strings", 239 ":strings",
227 ":with_no_strings_some_things_wont_work", 240 ":with_no_strings",
228 ] 241 ]
229 script = "prebuild/create_string_rc.py" 242 script = "prebuild/create_string_rc.py"
230 243
231 if (is_chrome_branded) { 244 if (is_chrome_branded) {
232 grdfile = "//chrome/app/google_chrome_strings.grd" 245 grdfile = "//chrome/app/google_chrome_strings.grd"
233 } else { 246 } else {
234 grdfile = "//chrome/app/chromium_strings.grd" 247 grdfile = "//chrome/app/chromium_strings.grd"
235 } 248 }
236 249
237 inputs = [ 250 inputs = [
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 "set_reg_value_work_item_unittest.cc", 318 "set_reg_value_work_item_unittest.cc",
306 "shell_util_unittest.cc", 319 "shell_util_unittest.cc",
307 "test_app_registration_data.cc", 320 "test_app_registration_data.cc",
308 "test_app_registration_data.h", 321 "test_app_registration_data.h",
309 "uninstall_metrics_unittest.cc", 322 "uninstall_metrics_unittest.cc",
310 "wmi_unittest.cc", 323 "wmi_unittest.cc",
311 "work_item_list_unittest.cc", 324 "work_item_list_unittest.cc",
312 ] 325 ]
313 326
314 deps = [ 327 deps = [
315 ":strings", 328 ":with_rc_strings",
316 ":util",
317 "//base", 329 "//base",
318 "//base:i18n", 330 "//base:i18n",
319 "//base/test:test_support", 331 "//base/test:test_support",
320 "//chrome:other_version", 332 "//chrome:other_version",
321 "//chrome/common", 333 "//chrome/common",
322 "//chrome/installer/setup:lib", 334 "//chrome/installer/setup:lib",
323 "//chrome/installer/test:alternate_version_generator_lib", 335 "//chrome/installer/test:alternate_version_generator_lib",
324 "//components/variations", 336 "//components/variations",
325 "//content/public/common", 337 "//content/public/common",
326 "//testing/gmock", 338 "//testing/gmock",
327 "//testing/gtest", 339 "//testing/gtest",
328 ] 340 ]
329 341
330 # TODO(GYP) manifest: $(ProjectDir)\\installer\\mini_installer\\mini_install er.exe.manifest 342 # TODO(GYP) manifest: $(ProjectDir)\\installer\\mini_installer\\mini_install er.exe.manifest
331 } 343 }
332 } # is_win 344 } # is_win
OLDNEW
« no previous file with comments | « chrome/installer/test/BUILD.gn ('k') | chrome/tools/crash_service/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698