| Index: chrome/installer/mini_installer/BUILD.gn
|
| diff --git a/chrome/installer/mini_installer/BUILD.gn b/chrome/installer/mini_installer/BUILD.gn
|
| index 8f8cb406fb7a16dee6a0727b3525d83acc2aa740..a5f9c71081dfc568542f1b0b62d6d8c55f048cf5 100644
|
| --- a/chrome/installer/mini_installer/BUILD.gn
|
| +++ b/chrome/installer/mini_installer/BUILD.gn
|
| @@ -2,8 +2,10 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +import("//build/config/compiler/compiler.gni")
|
| import("//build/config/features.gni")
|
| import("//build/config/ui.gni")
|
| +import("//build/config/win/visual_studio_version.gni")
|
| import("//build_overrides/v8.gni")
|
| import("//chrome/test/mini_installer/mini_installer_test.gni")
|
| import("//chrome/version.gni")
|
| @@ -72,8 +74,6 @@ source_set("unit_tests") {
|
| ]
|
| }
|
|
|
| -packed_files_rc_file = "$target_gen_dir/packed_files.rc"
|
| -
|
| # The runtime deps are used to tell create_installer_archive what component
|
| # DLLs need to be packaged in a component build.
|
| chrome_runtime_deps = "$root_gen_dir/chrome_component.runtime_deps"
|
| @@ -93,145 +93,176 @@ group("setup_runtime_deps") {
|
| ]
|
| }
|
|
|
| -action("archive") {
|
| - script = "//chrome/tools/build/win/create_installer_archive.py"
|
| +# Generates a mini installer.
|
| +#
|
| +# out_dir (required)
|
| +# The output directory out_dir where the mini_installer image should be
|
| +# written.
|
| +#
|
| +# deps (required)
|
| +# Normal meaning.
|
| +template("generate_mini_installer") {
|
| + custom_deps = invoker.deps
|
| + output_dir = invoker.out_dir
|
|
|
| - release_file = "chrome.release"
|
| + packed_files_rc_file = "$target_gen_dir/$target_name/packed_files.rc"
|
| + archive_name = target_name + "_archive"
|
| + staging_dir = "$target_gen_dir/$target_name"
|
|
|
| - inputs = [
|
| - "$root_out_dir/chrome.exe",
|
| - "$root_out_dir/chrome.dll",
|
| - "$root_out_dir/locales/en-US.pak",
|
| - "$root_out_dir/setup.exe",
|
| - release_file,
|
| - ]
|
| + action(archive_name) {
|
| + script = "//chrome/tools/build/win/create_installer_archive.py"
|
|
|
| - outputs = [
|
| - # See also chrome.packed.7z conditionally added below.
|
| - "$root_out_dir/chrome.7z",
|
| - "$root_out_dir/setup.ex_",
|
| - packed_files_rc_file,
|
| - ]
|
| - args = [
|
| - "--build_dir",
|
| - rebase_path(root_out_dir, root_build_dir),
|
| - "--staging_dir",
|
| - rebase_path(root_gen_dir, root_build_dir),
|
| - "--input_file",
|
| - rebase_path(release_file, root_build_dir),
|
| - "--resource_file_path",
|
| - rebase_path(packed_files_rc_file, root_build_dir),
|
| - "--target_arch=$current_cpu",
|
| - "--distribution=_google_chrome",
|
| - "--chrome_runtime_deps",
|
| - rebase_path(chrome_runtime_deps, root_build_dir),
|
| - "--setup_runtime_deps",
|
| - rebase_path(setup_runtime_deps, root_build_dir),
|
| -
|
| - # Optional arguments to generate diff installer.
|
| - #'--last_chrome_installer=C:/Temp/base',
|
| - #'--setup_exe_format=DIFF',
|
| - #'--diff_algorithm=COURGETTE',
|
| -
|
| - # Optional argument for verbose archiving output.
|
| - #'--verbose',
|
| - ]
|
| + release_file = "chrome.release"
|
|
|
| - deps = [
|
| - ":chrome_runtime_deps",
|
| - ":setup_runtime_deps",
|
| - "//chrome",
|
| - "//chrome:main_dll",
|
| - "//chrome/browser/extensions/default_extensions",
|
| - "//chrome/installer/setup",
|
| - "//third_party/icu:icudata",
|
| - ]
|
| + inputs = [
|
| + "$output_dir/chrome.dll",
|
| + "$root_out_dir/chrome.exe",
|
| + "$root_out_dir/locales/en-US.pak",
|
| + "$root_out_dir/setup.exe",
|
| + release_file,
|
| + ]
|
|
|
| - if (enable_hidpi) {
|
| - args += [ "--enable_hidpi=1" ]
|
| - }
|
| - if (is_component_build) {
|
| - args += [ "--component_build=1" ]
|
| - } else {
|
| - outputs += [ "$root_out_dir/chrome.packed.7z" ]
|
| - }
|
| + outputs = [
|
| + # See also chrome.packed.7z conditionally added below.
|
| + "$output_dir/chrome.7z",
|
| + "$output_dir/setup.ex_",
|
| + packed_files_rc_file,
|
| + ]
|
| + args = [
|
| + "--build_dir",
|
| + rebase_path(root_out_dir, root_build_dir),
|
| + "--staging_dir",
|
| + rebase_path(staging_dir, root_build_dir),
|
| + "--input_file",
|
| + rebase_path(release_file, root_build_dir),
|
| + "--resource_file_path",
|
| + rebase_path(packed_files_rc_file, root_build_dir),
|
| + "--target_arch=$current_cpu",
|
| + "--distribution=_google_chrome",
|
| + "--output_dir",
|
| + rebase_path(output_dir, root_build_dir),
|
| + "--chrome_runtime_deps",
|
| + rebase_path(chrome_runtime_deps, root_build_dir),
|
| + "--setup_runtime_deps",
|
| + rebase_path(setup_runtime_deps, root_build_dir),
|
| +
|
| + # Optional arguments to generate diff installer.
|
| + #'--last_chrome_installer=C:/Temp/base',
|
| + #'--setup_exe_format=DIFF',
|
| + #'--diff_algorithm=COURGETTE',
|
| +
|
| + # Optional argument for verbose archiving output.
|
| + #'--verbose',
|
| + ]
|
| +
|
| + deps = custom_deps + [
|
| + ":chrome_runtime_deps",
|
| + ":setup_runtime_deps",
|
| + "//chrome",
|
| + "//chrome/browser/extensions/default_extensions",
|
| + "//chrome/installer/setup",
|
| + "//third_party/icu:icudata",
|
| + ]
|
| +
|
| + if (enable_hidpi) {
|
| + args += [ "--enable_hidpi=1" ]
|
| + }
|
| + if (is_component_build) {
|
| + args += [ "--component_build=1" ]
|
| + } else {
|
| + outputs += [ "$output_dir/chrome.packed.7z" ]
|
| + }
|
| +
|
| + if (enable_nacl) {
|
| + inputs += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
|
| + deps += [ "//ppapi/native_client:irt" ]
|
| + if (current_cpu == "x86") {
|
| + inputs += [
|
| + "$root_out_dir/nacl64.exe",
|
| + "$root_out_dir/nacl_irt_x86_32.nexe",
|
| + ]
|
| + deps += [ "//components/nacl/broker:nacl64" ]
|
| + }
|
| + }
|
| +
|
| + if (icu_use_data_file) {
|
| + inputs += [ "$root_out_dir/icudtl.dat" ]
|
| + } else {
|
| + inputs += [ "$root_out_dir/icudt.dll" ]
|
| + }
|
|
|
| - if (enable_nacl) {
|
| - inputs += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
|
| - deps += [ "//ppapi/native_client:irt" ]
|
| - if (current_cpu == "x86") {
|
| + if (v8_use_external_startup_data) {
|
| inputs += [
|
| - "$root_out_dir/nacl64.exe",
|
| - "$root_out_dir/nacl_irt_x86_32.nexe",
|
| + "$root_out_dir/natives_blob.bin",
|
| + "$root_out_dir/snapshot_blob.bin",
|
| ]
|
| - deps += [ "//components/nacl/broker:nacl64" ]
|
| + deps += [ "//v8" ]
|
| }
|
| - }
|
| -
|
| - if (icu_use_data_file) {
|
| - inputs += [ "$root_out_dir/icudtl.dat" ]
|
| - } else {
|
| - inputs += [ "$root_out_dir/icudt.dll" ]
|
| - }
|
|
|
| - if (v8_use_external_startup_data) {
|
| - inputs += [
|
| - "$root_out_dir/natives_blob.bin",
|
| - "$root_out_dir/snapshot_blob.bin",
|
| + depfile = "$target_gen_dir/archive.d"
|
| + args += [
|
| + "--depfile",
|
| + rebase_path(depfile, root_build_dir),
|
| ]
|
| - deps += [ "//v8" ]
|
| }
|
|
|
| - depfile = "$target_gen_dir/archive.d"
|
| - args += [
|
| - "--depfile",
|
| - rebase_path(depfile, root_build_dir),
|
| - ]
|
| -}
|
| + executable(target_name) {
|
| + output_name = "mini_installer"
|
| + sources = [
|
| + "mini_installer.cc",
|
| + packed_files_rc_file,
|
| + ]
|
|
|
| -executable("mini_installer") {
|
| - sources = [
|
| - "mini_installer.cc",
|
| - packed_files_rc_file,
|
| - ]
|
| + # This target is special so we manually override most linker flags and
|
| + # specify our own to keep the size down. Also make sure that we don't use
|
| + # WPO as it's not supported by the mini installer.
|
| + configs -= [
|
| + "//build/config/compiler:default_optimization",
|
| + "//build/config:executable_config",
|
| + "//build/config/win:console",
|
| + ]
|
| + configs += [
|
| + ":mini_installer_compiler_flags",
|
| + "//build/config/compiler:optimize_no_wpo",
|
| + "//build/config/win:sdk_link",
|
| + "//build/config/win:windowed",
|
| + ]
|
|
|
| - # This target is special so we manually override most linker flags and
|
| - # specify our own to keep the size down. Also make sure that we don't use
|
| - # WPO as it's not supported by the mini installer.
|
| - configs -= [
|
| - "//build/config/compiler:default_optimization",
|
| - "//build/config:executable_config",
|
| - "//build/config/win:console",
|
| - ]
|
| - configs += [
|
| - ":mini_installer_compiler_flags",
|
| - "//build/config/win:sdk_link",
|
| - "//build/config/win:windowed",
|
| - ]
|
| - if (!is_debug) {
|
| - configs += [ "//build/config/compiler:optimize_no_wpo" ]
|
| - } else {
|
| - configs += [ "//build/config/compiler:no_optimize" ]
|
| - }
|
| + ldflags = [
|
| + "/ENTRY:MainEntryPoint",
|
| + "/FIXED:NO",
|
| + "/ignore:4199",
|
| + "/NXCOMPAT",
|
| + ]
|
|
|
| - ldflags = [
|
| - "/ENTRY:MainEntryPoint",
|
| - "/FIXED:NO",
|
| - "/ignore:4199",
|
| - "/NXCOMPAT",
|
| - ]
|
| + libs = [ "setupapi.lib" ]
|
|
|
| - libs = [ "setupapi.lib" ]
|
| + deps = [
|
| + ":$archive_name",
|
| + ":lib",
|
| + ":version",
|
| + "//build/config/sanitizers:deps",
|
| + "//build/win:default_exe_manifest",
|
| + ]
|
| + }
|
| +}
|
|
|
| +generate_mini_installer("mini_installer") {
|
| + out_dir = root_out_dir
|
| deps = [
|
| - ":archive",
|
| - ":lib",
|
| - ":version",
|
| - "//build/config/sanitizers:deps",
|
| - "//build/win:default_exe_manifest",
|
| + "//chrome:main_dll",
|
| ]
|
| }
|
|
|
| +if (syzygy_optimize) {
|
| + generate_mini_installer("mini_installer_syzygy") {
|
| + out_dir = "$root_out_dir/syzygy/"
|
| + deps = [
|
| + "//chrome/tools/build/win/syzygy:chrome_dll_syzygy",
|
| + ]
|
| + }
|
| +}
|
| +
|
| # next_version_mini_installer.exe can't be generated in an x86 Debug component
|
| # build because it requires too much memory.
|
| if (!(is_component_build && is_debug && target_cpu == "x86")) {
|
|
|