| 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/config/chrome_build.gni") | 5 import("//build/config/chrome_build.gni") | 
| 6 import("//build/config/compiler/compiler.gni") | 6 import("//build/config/compiler/compiler.gni") | 
| 7 import("//build/config/compiler/pgo/pgo.gni") | 7 import("//build/config/compiler/pgo/pgo.gni") | 
| 8 import("//build/config/features.gni") | 8 import("//build/config/features.gni") | 
| 9 import("//build/config/locales.gni") | 9 import("//build/config/locales.gni") | 
| 10 import("//build/config/sanitizers/sanitizers.gni") | 10 import("//build/config/sanitizers/sanitizers.gni") | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 119       ":chrome_initial", | 119       ":chrome_initial", | 
| 120     ] | 120     ] | 
| 121     if (is_win) { | 121     if (is_win) { | 
| 122       public_deps += [ ":reorder_imports" ] | 122       public_deps += [ ":reorder_imports" ] | 
| 123     } | 123     } | 
| 124     if (use_aura && (is_win || is_linux)) { | 124     if (use_aura && (is_win || is_linux)) { | 
| 125       data_deps += [ "//chrome/app:service_manifests" ] | 125       data_deps += [ "//chrome/app:service_manifests" ] | 
| 126     } | 126     } | 
| 127   } | 127   } | 
| 128 | 128 | 
| 129   executable("chrome_initial") { | 129   template("chrome_binary") { | 
|  | 130     executable(target_name) { | 
|  | 131       output_name = invoker.output_name | 
|  | 132       sources = invoker.sources | 
|  | 133       if (defined(invoker.deps)) { | 
|  | 134         deps = invoker.deps | 
|  | 135       } else { | 
|  | 136         deps = [] | 
|  | 137       } | 
|  | 138 | 
|  | 139       if (!is_win || is_clang) { | 
|  | 140         # Normally, we need to pass specific flags to the linker to | 
|  | 141         # create an executable that gathers profile data. However, when | 
|  | 142         # using MSVC, we need to make sure we *don't* pass /GENPROFILE | 
|  | 143         # when linking without generating any code, or else the linker | 
|  | 144         # will give us fatal error LNK1264. So we add the PGO flags | 
|  | 145         # on all configurations, execpt MSVC on Windows. | 
|  | 146         configs += [ "//build/config/compiler/pgo:default_pgo_flags" ] | 
|  | 147       } | 
|  | 148 | 
|  | 149       # Because the sources list varies so significantly per-platform, generally | 
|  | 150       # each platform lists its own files rather than relying on filtering or | 
|  | 151       # removing unused files. | 
|  | 152       sources += [ "app/chrome_exe_resource.h" ] | 
|  | 153       defines = [] | 
|  | 154       public_deps = [] | 
|  | 155       deps += [ | 
|  | 156         "//build/config:exe_and_shlib_deps", | 
|  | 157         "//printing/features", | 
|  | 158       ] | 
|  | 159 | 
|  | 160       data = [ | 
|  | 161         "$root_out_dir/resources.pak", | 
|  | 162       ] | 
|  | 163       if (is_linux || is_win) { | 
|  | 164         data += [ | 
|  | 165           "$root_out_dir/chrome_100_percent.pak", | 
|  | 166           "$root_out_dir/locales/en-US.pak", | 
|  | 167           "$root_out_dir/locales/fr.pak", | 
|  | 168         ] | 
|  | 169       } | 
|  | 170 | 
|  | 171       data_deps = [] | 
|  | 172 | 
|  | 173       if (is_win) { | 
|  | 174         sources += [ | 
|  | 175           "app/chrome_exe.rc", | 
|  | 176           "app/chrome_exe_load_config_win.cc", | 
|  | 177           "app/chrome_exe_main_win.cc", | 
|  | 178           "app/chrome_watcher_client_win.cc", | 
|  | 179           "app/chrome_watcher_client_win.h", | 
|  | 180           "app/chrome_watcher_command_line_win.cc", | 
|  | 181           "app/chrome_watcher_command_line_win.h", | 
|  | 182           "app/main_dll_loader_win.cc", | 
|  | 183           "app/main_dll_loader_win.h", | 
|  | 184           "common/crash_keys.cc", | 
|  | 185           "common/crash_keys.h", | 
|  | 186         ] | 
|  | 187 | 
|  | 188         deps += [ | 
|  | 189           ":chrome_dll", | 
|  | 190           ":chrome_exe_version", | 
|  | 191           ":copy_first_run", | 
|  | 192           ":file_pre_reader", | 
|  | 193           ":visual_elements_resources", | 
|  | 194           "//base", | 
|  | 195           "//breakpad:breakpad_handler", | 
|  | 196           "//breakpad:breakpad_sender", | 
|  | 197           "//chrome/app/version_assembly:chrome_exe_manifest", | 
|  | 198           "//chrome/browser:chrome_process_finder", | 
|  | 199           "//chrome/chrome_watcher", | 
|  | 200           "//chrome/chrome_watcher:client", | 
|  | 201           "//chrome/common:constants", | 
|  | 202           "//chrome/common:metrics_constants_util_win", | 
|  | 203           "//chrome/install_static:secondary_module", | 
|  | 204           "//chrome/installer/util:with_no_strings", | 
|  | 205           "//chrome_elf", | 
|  | 206           "//components/browser_watcher:browser_watcher_client", | 
|  | 207           "//components/crash/content/app:run_as_crashpad_handler", | 
|  | 208           "//components/flags_ui:switches", | 
|  | 209           "//content:sandbox_helper_win", | 
|  | 210           "//content/public/common:static_switches", | 
|  | 211           "//crypto", | 
|  | 212           "//gpu/config:crash_keys", | 
|  | 213           "//sandbox", | 
|  | 214         ] | 
|  | 215         data_deps = [ | 
|  | 216           "//chrome/app/version_assembly:version_assembly_manifest", | 
|  | 217         ] | 
|  | 218 | 
|  | 219         if (win_console_app) { | 
|  | 220           defines += [ "WIN_CONSOLE_APP" ] | 
|  | 221         } else { | 
|  | 222           # Set /SUBSYSTEM:WINDOWS for chrome.exe itself, unless a console build | 
|  | 223           # has been requested. | 
|  | 224           configs -= [ "//build/config/win:console" ] | 
|  | 225           configs += [ "//build/config/win:windowed" ] | 
|  | 226         } | 
|  | 227 | 
|  | 228         ldflags = [ | 
|  | 229           "/DELAYLOAD:dbghelp.dll", | 
|  | 230           "/DELAYLOAD:dwmapi.dll", | 
|  | 231           "/DELAYLOAD:uxtheme.dll", | 
|  | 232           "/DELAYLOAD:ole32.dll", | 
|  | 233           "/DELAYLOAD:oleaut32.dll", | 
|  | 234         ] | 
|  | 235 | 
|  | 236         if (current_cpu == "x64") { | 
|  | 237           # Increase the initial stack size. The default is 1MB, this is 2MB. | 
|  | 238           ldflags += [ "/STACK:2097152" ] | 
|  | 239         } | 
|  | 240       } | 
|  | 241 | 
|  | 242       if (is_linux) { | 
|  | 243         sources += [ | 
|  | 244           "app/chrome_dll_resource.h", | 
|  | 245           "app/chrome_main.cc", | 
|  | 246           "app/chrome_main_delegate.cc", | 
|  | 247           "app/chrome_main_delegate.h", | 
|  | 248         ] | 
|  | 249 | 
|  | 250         deps += [ | 
|  | 251           # On Linux, link the dependencies (libraries) that make up actual | 
|  | 252           # Chromium functionality directly into the executable. | 
|  | 253           ":browser_dependencies", | 
|  | 254           ":child_dependencies", | 
|  | 255           ":manpage", | 
|  | 256 | 
|  | 257           # Needed to use the master_preferences functions | 
|  | 258           "//chrome/installer/util:with_no_strings", | 
|  | 259           "//content/public/app:both", | 
|  | 260           "//content/public/common:service_names", | 
|  | 261 | 
|  | 262           # For headless mode. | 
|  | 263           "//headless:headless_shell_lib", | 
|  | 264           "//services/service_manager/embedder", | 
|  | 265         ] | 
|  | 266 | 
|  | 267         public_deps = [ | 
|  | 268           ":xdg_mime",  # Needs to be public for installer to consume files. | 
|  | 269           "//chrome/common:features", | 
|  | 270         ] | 
|  | 271 | 
|  | 272         ldflags = [ "-pie" ] | 
|  | 273 | 
|  | 274         # Chrome OS debug builds for arm need to pass --long-plt to the linker. | 
|  | 275         # See https://bugs.chromium.org/p/chromium/issues/detail?id=583532 | 
|  | 276         if (is_chromeos && is_debug && target_cpu == "arm") { | 
|  | 277           ldflags += [ "-Wl,--long-plt" ] | 
|  | 278         } | 
|  | 279 | 
|  | 280         if (use_pango || use_cairo) { | 
|  | 281           # Needed for chrome_main.cc initialization of libraries. | 
|  | 282           configs += [ "//build/config/linux/pangocairo" ] | 
|  | 283         } | 
|  | 284 | 
|  | 285         if (use_x11) { | 
|  | 286           configs += [ | 
|  | 287             "//build/config/linux:x11", | 
|  | 288             "//build/config/linux:xext", | 
|  | 289           ] | 
|  | 290         } | 
|  | 291 | 
|  | 292         if (enable_package_mash_services) { | 
|  | 293           deps += embedded_mash_service_deps | 
|  | 294         } | 
|  | 295       } | 
|  | 296 | 
|  | 297       # These files are used by the installer so we need a public dep. | 
|  | 298       public_deps += [ ":packed_resources" ] | 
|  | 299 | 
|  | 300       # Only ChromeOS has precompiled Flash that needs to get copied to the outp
      ut | 
|  | 301       # directory. On other platforms, Flash is either component-updated only or | 
|  | 302       # not supported at all. | 
|  | 303       if (is_chromeos) { | 
|  | 304         deps += [ "//third_party/adobe/flash:flapper_binaries" ] | 
|  | 305       } | 
|  | 306 | 
|  | 307       data_deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ] | 
|  | 308 | 
|  | 309       if (is_multi_dll_chrome) { | 
|  | 310         defines += [ "CHROME_MULTIPLE_DLL" ] | 
|  | 311         data_deps += [ ":chrome_child" ] | 
|  | 312       } | 
|  | 313     } | 
|  | 314   } | 
|  | 315 | 
|  | 316   chrome_binary("chrome_initial") { | 
| 130     if (is_win) { | 317     if (is_win) { | 
| 131       output_name = "initialexe/chrome" | 318       output_name = "initialexe/chrome" | 
| 132     } else { | 319     } else { | 
| 133       output_name = "chrome" | 320       output_name = "chrome" | 
| 134     } | 321     } | 
| 135 | 322 | 
| 136     if (!is_win || is_clang) { | 323     sources = [] | 
| 137       # Normally, we need to pass specific flags to the linker to | 324     if (!is_win && use_aura) { | 
| 138       # create an executable that gathers profile data. However, when |  | 
| 139       # using MSVC, we need to make sure we *don't* pass /GENPROFILE |  | 
| 140       # when linking without generating any code, or else the linker |  | 
| 141       # will give us fatal error LNK1264. So we add the PGO flags |  | 
| 142       # on all configurations, execpt MSVC on Windows. |  | 
| 143       configs += [ "//build/config/compiler/pgo:default_pgo_flags" ] |  | 
| 144     } |  | 
| 145 |  | 
| 146     # Because the sources list varies so significantly per-platform, generally |  | 
| 147     # each platform lists its own files rather than relying on filtering or |  | 
| 148     # removing unused files. |  | 
| 149     sources = [ |  | 
| 150       "app/chrome_exe_resource.h", |  | 
| 151     ] |  | 
| 152     defines = [] |  | 
| 153     public_deps = [] |  | 
| 154     deps = [ |  | 
| 155       "//build/config:exe_and_shlib_deps", |  | 
| 156       "//printing/features", |  | 
| 157     ] |  | 
| 158 |  | 
| 159     data = [ |  | 
| 160       "$root_out_dir/resources.pak", |  | 
| 161     ] |  | 
| 162     if (is_linux || is_win) { |  | 
| 163       data += [ |  | 
| 164         "$root_out_dir/chrome_100_percent.pak", |  | 
| 165         "$root_out_dir/locales/en-US.pak", |  | 
| 166         "$root_out_dir/locales/fr.pak", |  | 
| 167       ] |  | 
| 168     } |  | 
| 169 |  | 
| 170     data_deps = [] |  | 
| 171 |  | 
| 172     if (is_win) { |  | 
| 173       sources += [ |  | 
| 174         "app/chrome_exe.rc", |  | 
| 175         "app/chrome_exe_load_config_win.cc", |  | 
| 176         "app/chrome_exe_main_win.cc", |  | 
| 177         "app/chrome_watcher_client_win.cc", |  | 
| 178         "app/chrome_watcher_client_win.h", |  | 
| 179         "app/chrome_watcher_command_line_win.cc", |  | 
| 180         "app/chrome_watcher_command_line_win.h", |  | 
| 181         "app/main_dll_loader_win.cc", |  | 
| 182         "app/main_dll_loader_win.h", |  | 
| 183         "common/crash_keys.cc", |  | 
| 184         "common/crash_keys.h", |  | 
| 185       ] |  | 
| 186 |  | 
| 187       deps += [ |  | 
| 188         ":chrome_dll", |  | 
| 189         ":chrome_exe_version", |  | 
| 190         ":copy_first_run", |  | 
| 191         ":file_pre_reader", |  | 
| 192         ":visual_elements_resources", |  | 
| 193         "//base", |  | 
| 194         "//breakpad:breakpad_handler", |  | 
| 195         "//breakpad:breakpad_sender", |  | 
| 196         "//chrome/app/version_assembly:chrome_exe_manifest", |  | 
| 197         "//chrome/browser:chrome_process_finder", |  | 
| 198         "//chrome/chrome_watcher", |  | 
| 199         "//chrome/chrome_watcher:client", |  | 
| 200         "//chrome/common:constants", |  | 
| 201         "//chrome/common:metrics_constants_util_win", |  | 
| 202         "//chrome/install_static:secondary_module", |  | 
| 203         "//chrome/installer/util:with_no_strings", |  | 
| 204         "//chrome_elf", |  | 
| 205         "//components/browser_watcher:browser_watcher_client", |  | 
| 206         "//components/crash/content/app:run_as_crashpad_handler", |  | 
| 207         "//components/flags_ui:switches", |  | 
| 208         "//content:sandbox_helper_win", |  | 
| 209         "//content/public/common:static_switches", |  | 
| 210         "//crypto", |  | 
| 211         "//gpu/config:crash_keys", |  | 
| 212         "//sandbox", |  | 
| 213       ] |  | 
| 214       data_deps = [ |  | 
| 215         "//chrome/app/version_assembly:version_assembly_manifest", |  | 
| 216       ] |  | 
| 217 |  | 
| 218       if (win_console_app) { |  | 
| 219         defines += [ "WIN_CONSOLE_APP" ] |  | 
| 220       } else { |  | 
| 221         # Set /SUBSYSTEM:WINDOWS for chrome.exe itself, unless a console build |  | 
| 222         # has been requested. |  | 
| 223         configs -= [ "//build/config/win:console" ] |  | 
| 224         configs += [ "//build/config/win:windowed" ] |  | 
| 225       } |  | 
| 226 |  | 
| 227       ldflags = [ |  | 
| 228         "/DELAYLOAD:dbghelp.dll", |  | 
| 229         "/DELAYLOAD:dwmapi.dll", |  | 
| 230         "/DELAYLOAD:uxtheme.dll", |  | 
| 231         "/DELAYLOAD:ole32.dll", |  | 
| 232         "/DELAYLOAD:oleaut32.dll", |  | 
| 233       ] |  | 
| 234 |  | 
| 235       if (current_cpu == "x64") { |  | 
| 236         # Increase the initial stack size. The default is 1MB, this is 2MB. |  | 
| 237         ldflags += [ "/STACK:2097152" ] |  | 
| 238       } |  | 
| 239     } else if (use_aura) { |  | 
| 240       # Non-Windows aura entrypoint. | 325       # Non-Windows aura entrypoint. | 
| 241       sources += [ "app/chrome_exe_main_aura.cc" ] | 326       sources += [ "app/chrome_exe_main_aura.cc" ] | 
| 242     } | 327     } | 
| 243 | 328   } | 
| 244     if (is_linux) { | 329 | 
| 245       sources += [ | 330   if (enable_package_mash_services) { | 
| 246         "app/chrome_dll_resource.h", | 331     chrome_binary("chrome_test") { | 
| 247         "app/chrome_main.cc", | 332       # Note that the output name needs to end with "chrome", because that's wha
      t | 
| 248         "app/chrome_main_delegate.cc", | 333       # telemetry test-runner expects. | 
| 249         "app/chrome_main_delegate.h", | 334       output_name = "test_chrome" | 
|  | 335       sources = [] | 
|  | 336       deps = [ | 
|  | 337         "//chrome/app/mash:chrome_test_catalog", | 
| 250       ] | 338       ] | 
| 251 | 339       if (!is_win && use_aura) { | 
| 252       deps += [ | 340         sources += [ "app/chrome_test_exe_main_aura.cc" ] | 
| 253         # On Linux, link the dependencies (libraries) that make up actual | 341       } | 
| 254         # Chromium functionality directly into the executable. |  | 
| 255         ":browser_dependencies", |  | 
| 256         ":child_dependencies", |  | 
| 257         ":manpage", |  | 
| 258 |  | 
| 259         # Needed to use the master_preferences functions |  | 
| 260         "//chrome/installer/util:with_no_strings", |  | 
| 261         "//content/public/app:both", |  | 
| 262         "//content/public/common:service_names", |  | 
| 263 |  | 
| 264         # For headless mode. |  | 
| 265         "//headless:headless_shell_lib", |  | 
| 266         "//services/service_manager/embedder", |  | 
| 267       ] |  | 
| 268 |  | 
| 269       public_deps = [ |  | 
| 270         ":xdg_mime",  # Needs to be public for installer to consume files. |  | 
| 271         "//chrome/common:features", |  | 
| 272       ] |  | 
| 273 |  | 
| 274       ldflags = [ "-pie" ] |  | 
| 275 |  | 
| 276       # Chrome OS debug builds for arm need to pass --long-plt to the linker. |  | 
| 277       # See https://bugs.chromium.org/p/chromium/issues/detail?id=583532 |  | 
| 278       if (is_chromeos && is_debug && target_cpu == "arm") { |  | 
| 279         ldflags += [ "-Wl,--long-plt" ] |  | 
| 280       } |  | 
| 281 |  | 
| 282       if (use_pango || use_cairo) { |  | 
| 283         # Needed for chrome_main.cc initialization of libraries. |  | 
| 284         configs += [ "//build/config/linux/pangocairo" ] |  | 
| 285       } |  | 
| 286 |  | 
| 287       if (use_x11) { |  | 
| 288         configs += [ |  | 
| 289           "//build/config/linux:x11", |  | 
| 290           "//build/config/linux:xext", |  | 
| 291         ] |  | 
| 292       } |  | 
| 293 |  | 
| 294       if (enable_package_mash_services) { |  | 
| 295         deps += embedded_mash_service_deps |  | 
| 296       } |  | 
| 297     } |  | 
| 298 |  | 
| 299     # These files are used by the installer so we need a public dep. |  | 
| 300     public_deps += [ ":packed_resources" ] |  | 
| 301 |  | 
| 302     # Only ChromeOS has precompiled Flash that needs to get copied to the output |  | 
| 303     # directory. On other platforms, Flash is either component-updated only or |  | 
| 304     # not supported at all. |  | 
| 305     if (is_chromeos) { |  | 
| 306       deps += [ "//third_party/adobe/flash:flapper_binaries" ] |  | 
| 307     } |  | 
| 308 |  | 
| 309     data_deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ] |  | 
| 310 |  | 
| 311     if (is_multi_dll_chrome) { |  | 
| 312       defines += [ "CHROME_MULTIPLE_DLL" ] |  | 
| 313       data_deps += [ ":chrome_child" ] |  | 
| 314     } | 342     } | 
| 315   } | 343   } | 
| 316 }  # !is_android && !is_mac | 344 }  # !is_android && !is_mac | 
| 317 | 345 | 
| 318 if (is_win) { | 346 if (is_win) { | 
| 319   # This target is a forwarding target to compile the necessary DLLs used | 347   # This target is a forwarding target to compile the necessary DLLs used | 
| 320   # by Chrome. | 348   # by Chrome. | 
| 321   group("chrome_dll") { | 349   group("chrome_dll") { | 
| 322     data_deps = [ | 350     data_deps = [ | 
| 323       ":main_dll", | 351       ":main_dll", | 
| (...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1775       "//chrome/app/theme/$branding_path_component/product_logo_48.png", | 1803       "//chrome/app/theme/$branding_path_component/product_logo_48.png", | 
| 1776       "//chrome/tools/build/linux/chrome-wrapper", | 1804       "//chrome/tools/build/linux/chrome-wrapper", | 
| 1777       "//third_party/xdg-utils/scripts/xdg-mime", | 1805       "//third_party/xdg-utils/scripts/xdg-mime", | 
| 1778       "//third_party/xdg-utils/scripts/xdg-settings", | 1806       "//third_party/xdg-utils/scripts/xdg-settings", | 
| 1779     ] | 1807     ] | 
| 1780     outputs = [ | 1808     outputs = [ | 
| 1781       "$root_out_dir/{{source_file_part}}", | 1809       "$root_out_dir/{{source_file_part}}", | 
| 1782     ] | 1810     ] | 
| 1783   } | 1811   } | 
| 1784 } | 1812 } | 
| OLD | NEW | 
|---|