OLD | NEW |
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/buildflag_header.gni") | 5 import("//build/buildflag_header.gni") |
6 import("//build/config/chrome_build.gni") | 6 import("//build/config/chrome_build.gni") |
7 import("//build/config/compiler/compiler.gni") | 7 import("//build/config/compiler/compiler.gni") |
| 8 import("//build/config/compiler/pgo/pgo.gni") |
8 import("//build/config/features.gni") | 9 import("//build/config/features.gni") |
9 import("//build/config/locales.gni") | 10 import("//build/config/locales.gni") |
10 import("//build/config/sanitizers/sanitizers.gni") | 11 import("//build/config/sanitizers/sanitizers.gni") |
11 import("//build/config/ui.gni") | 12 import("//build/config/ui.gni") |
12 import("//build/config/win/console_app.gni") | 13 import("//build/config/win/console_app.gni") |
13 import("//build/config/win/manifest.gni") | 14 import("//build/config/win/manifest.gni") |
14 import("//build/toolchain/toolchain.gni") | 15 import("//build/toolchain/toolchain.gni") |
15 import("//chrome/chrome_paks.gni") | 16 import("//chrome/chrome_paks.gni") |
16 import("//chrome/common/features.gni") | 17 import("//chrome/common/features.gni") |
17 import("//chrome/process_version_rc_template.gni") | 18 import("//chrome/process_version_rc_template.gni") |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 } | 110 } |
110 } | 111 } |
111 | 112 |
112 executable("chrome_initial") { | 113 executable("chrome_initial") { |
113 if (is_win) { | 114 if (is_win) { |
114 output_name = "initialexe/chrome" | 115 output_name = "initialexe/chrome" |
115 } else { | 116 } else { |
116 output_name = "chrome" | 117 output_name = "chrome" |
117 } | 118 } |
118 | 119 |
| 120 if (!is_win || is_clang) { |
| 121 # Normally, we need to pass specific flags to the linker to |
| 122 # create an executable that gathers profile data. However, when |
| 123 # using MSVC, we need to make sure we *don't* pass /GENPROFILE |
| 124 # when linking without generating any code, or else the linker |
| 125 # will give us fatal error LNK1264. So we add the PGO flags |
| 126 # on all configurations, execpt MSVC on Windows. |
| 127 configs += [ "//build/config/compiler/pgo:default_pgo_flags" ] |
| 128 } |
| 129 |
119 # Because the sources list varies so significantly per-platform, generally | 130 # Because the sources list varies so significantly per-platform, generally |
120 # each platform lists its own files rather than relying on filtering or | 131 # each platform lists its own files rather than relying on filtering or |
121 # removing unused files. | 132 # removing unused files. |
122 sources = [ | 133 sources = [ |
123 "app/chrome_exe_resource.h", | 134 "app/chrome_exe_resource.h", |
124 ] | 135 ] |
125 defines = [] | 136 defines = [] |
126 public_deps = [] | 137 public_deps = [] |
127 deps = [ | 138 deps = [ |
128 "//build/config/sanitizers:deps", | 139 "//build/config/sanitizers:deps", |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 "/DELAYLOAD:wininet.dll", | 428 "/DELAYLOAD:wininet.dll", |
418 ] | 429 ] |
419 | 430 |
420 if (symbol_level == 2) { | 431 if (symbol_level == 2) { |
421 # Incremental linking doesn't work on this target in debug mode with | 432 # Incremental linking doesn't work on this target in debug mode with |
422 # full symbols, but does work in other cases, including minimal | 433 # full symbols, but does work in other cases, including minimal |
423 # symbols. | 434 # symbols. |
424 configs -= [ "//build/config/win:default_incremental_linking" ] | 435 configs -= [ "//build/config/win:default_incremental_linking" ] |
425 configs += [ "//build/config/win:no_incremental_linking" ] | 436 configs += [ "//build/config/win:no_incremental_linking" ] |
426 } | 437 } |
427 if (chrome_pgo_phase == 1) { | 438 configs += [ "//build/config/compiler/pgo:default_pgo_flags" ] |
428 ldflags += [ | |
429 "/LTCG", | |
430 | |
431 # Make sure that enough memory gets allocated for the PGO profiling | |
432 # buffers and also cap this memory. Usually a PGI instrumented build | |
433 # of chrome_child.dll requires ~55MB of memory for storing its counter | |
434 # etc, normally the linker should automatically choose an appropriate | |
435 # amount of memory but it doesn't always do a good estimate and | |
436 # sometime allocates too little or too much (and so the instrumented | |
437 # image fails to start). Making sure that the buffer has a size in the | |
438 # [128 MB, 512 MB] range should prevent this from happening. | |
439 "/GENPROFILE:MEMMIN=134217728", | |
440 "/GENPROFILE:MEMMAX=536870912", | |
441 "/PogoSafeMode", | |
442 ] | |
443 } else if (chrome_pgo_phase == 2) { | |
444 ldflags += [ | |
445 "/LTCG", | |
446 "/USEPROFILE", | |
447 ] | |
448 } | |
449 | 439 |
450 if (enable_plugins && enable_pdf) { | 440 if (enable_plugins && enable_pdf) { |
451 deps += [ "//pdf" ] | 441 deps += [ "//pdf" ] |
452 } | 442 } |
453 } | 443 } |
454 } | 444 } |
455 copy("copy_first_run") { | 445 copy("copy_first_run") { |
456 sources = [ | 446 sources = [ |
457 "app/firstRun", | 447 "app/firstRun", |
458 ] | 448 ] |
(...skipping 1152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1611 "//chrome/app/theme/$branding_path_component/product_logo_48.png", | 1601 "//chrome/app/theme/$branding_path_component/product_logo_48.png", |
1612 "//chrome/tools/build/linux/chrome-wrapper", | 1602 "//chrome/tools/build/linux/chrome-wrapper", |
1613 "//third_party/xdg-utils/scripts/xdg-mime", | 1603 "//third_party/xdg-utils/scripts/xdg-mime", |
1614 "//third_party/xdg-utils/scripts/xdg-settings", | 1604 "//third_party/xdg-utils/scripts/xdg-settings", |
1615 ] | 1605 ] |
1616 outputs = [ | 1606 outputs = [ |
1617 "$root_out_dir/{{source_file_part}}", | 1607 "$root_out_dir/{{source_file_part}}", |
1618 ] | 1608 ] |
1619 } | 1609 } |
1620 } | 1610 } |
OLD | NEW |