Chromium Code Reviews| 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..10c7d209af8fd04aa45f9be204ad8b00d677694c 100644 |
| --- a/chrome/installer/mini_installer/BUILD.gn |
| +++ b/chrome/installer/mini_installer/BUILD.gn |
| @@ -4,6 +4,7 @@ |
| 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 +73,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 +92,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", |
|
brettw
2016/06/24 23:51:43
This seems confusing. The out_dir is documented to
|
| + "$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 (target_cpu == "x86" && !is_clang && !is_win_fastlink) { |
|
Dirk Pranke
2016/06/25 22:53:57
This also needs to depend on syzygy_optimize (else
|
| + 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")) { |