diff --git .gn .gn index c1a111364bed..566ffd815bc9 100644 --- .gn +++ .gn @@ -310,6 +310,8 @@ exec_script_whitelist = # in the Chromium repo outside of //build. "//build_overrides/build.gni", + "//cef/BUILD.gn", + # TODO(dgn): Layer violation but breaks the build otherwise, see # https://crbug.com/474506. "//clank/java/BUILD.gn", diff --git BUILD.gn BUILD.gn index 45b912d00cdd..4b3bbcd8cbf7 100644 --- BUILD.gn +++ BUILD.gn @@ -188,6 +188,7 @@ group("gn_all") { if (!is_ios && !is_fuchsia) { deps += [ + "//cef", "//chrome/test:telemetry_perf_unittests", "//chrome/test:unit_tests", "//components:components_browsertests", diff --git build/config/win/visual_studio_version.gni build/config/win/visual_studio_version.gni index 982fbe8d3f0d..e757be4688f1 100644 --- build/config/win/visual_studio_version.gni +++ build/config/win/visual_studio_version.gni @@ -12,9 +12,8 @@ declare_args() { # Currently always "2015". visual_studio_version = "" - # Directory of the Windows driver kit. If visual_studio_path is empty, this - # will be auto-filled. - wdk_path = "" + # Path to Visual Studio runtime libraries. + visual_studio_runtime_dirs = "" # Full path to the Windows SDK, not including a backslash at the end. # This value is the default location, override if you have a different @@ -28,12 +27,11 @@ if (visual_studio_path == "") { visual_studio_path = toolchain_data.vs_path windows_sdk_path = toolchain_data.sdk_path visual_studio_version = toolchain_data.vs_version - wdk_path = toolchain_data.wdk_dir visual_studio_runtime_dirs = toolchain_data.runtime_dirs } else { assert(visual_studio_version != "", "You must set the visual_studio_version if you set the path") - assert(wdk_path != "", - "You must set the wdk_path if you set the visual studio path") - visual_studio_runtime_dirs = [] + assert(visual_studio_runtime_dirs != "", + "You must set the visual_studio_runtime_dirs if you set the visual " + + "studio path") } diff --git build/toolchain/win/BUILD.gn build/toolchain/win/BUILD.gn index eb3e2b2b377d..343b039f3a50 100644 --- build/toolchain/win/BUILD.gn +++ build/toolchain/win/BUILD.gn @@ -6,6 +6,7 @@ import("//build/config/clang/clang.gni") import("//build/config/compiler/compiler.gni") import("//build/config/sanitizers/sanitizers.gni") import("//build/config/win/visual_studio_version.gni") +import("//build/toolchain/cc_wrapper.gni") import("//build/toolchain/clang_static_analyzer.gni") import("//build/toolchain/goma.gni") import("//build/toolchain/toolchain.gni") @@ -28,6 +29,8 @@ if (use_goma) { } else { goma_prefix = "$goma_dir/gomacc " } +} else if (cc_wrapper != "") { + goma_prefix = "$cc_wrapper " } else { goma_prefix = "" } @@ -108,7 +111,7 @@ template("msvc_toolchain") { # lld-link includes a replacement for lib.exe that can produce thin # archives and understands bitcode (for lto builds). - lib = "$prefix/$lld_link /lib /llvmlibthin" + lib = "$prefix/$lld_link /lib" link = "$prefix/$lld_link" if (host_os != "win") { # See comment adding --rsp-quoting to $cl above for more information. diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py index 1ba5533c3efb..abfd55a2c703 100644 --- build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py @@ -134,25 +134,28 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store): # variable. if 'VSINSTALLDIR' in os.environ: del os.environ['VSINSTALLDIR'] - other_path = os.path.normpath(os.path.join( - os.environ['GYP_MSVS_OVERRIDE_PATH'], - 'VC/Auxiliary/Build/vcvarsall.bat')) - if not os.path.exists(other_path): - raise Exception('%s is missing - make sure VC++ tools are installed.' % - script_path) - script_path = other_path - cpu_arg = "amd64" - if (cpu != 'x64'): - # x64 is default target CPU thus any other CPU requires a target set - cpu_arg += '_' + cpu - args = [script_path, cpu_arg] - # Store target must come before any SDK version declaration - if (target_store): - args.append(['store']) - # Chromium requires the 10.0.17134.0 SDK - previous versions don't have - # all of the required declarations. - args.append('10.0.17134.0') - variables = _LoadEnvFromBat(args) + script_path = os.path.normpath(os.path.join( + os.environ['GYP_MSVS_OVERRIDE_PATH'], + 'VC/Auxiliary/Build/vcvarsall.bat')) + if os.path.exists(script_path): + cpu_arg = "amd64" + if (cpu != 'x64'): + # x64 is default target CPU thus any other CPU requires a target set + cpu_arg += '_' + cpu + args = [script_path, cpu_arg] + # Store target must come before any SDK version declaration + if (target_store): + args.append(['store']) + # Chromium requires the 10.0.17134.0 SDK - previous versions don't have + # all of the required declarations. + args.append('10.0.17134.0') + variables = _LoadEnvFromBat(args) + else: + variables = [] + for k in sorted(os.environ.keys()): + variables.append('%s=%s' % (str(k), str(os.environ[k]))) + variables = '\n'.join(variables) + return _ExtractImportantEnvironment(variables) diff --git build/vs_toolchain.py build/vs_toolchain.py index 83847f456676..bf6254a0ebb6 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py @@ -68,11 +68,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs) os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH'] elif sys.platform == 'win32' and not depot_tools_win_toolchain: + has_override_path = True if not 'GYP_MSVS_OVERRIDE_PATH' in os.environ: + has_override_path = False os.environ['GYP_MSVS_OVERRIDE_PATH'] = DetectVisualStudioPath() if not 'GYP_MSVS_VERSION' in os.environ: os.environ['GYP_MSVS_VERSION'] = GetVisualStudioVersion() + if has_override_path: + # Don't attempt to copy DLLs when using a custom toolchain. + # The DLLs should already be discoverable via the PATH env variable. + return None + # When using an installed toolchain these files aren't needed in the output # directory in order to run binaries locally, but they are needed in order # to create isolates or the mini_installer. Copying them to the output diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni index 8b3d1652ae28..9d69220d85df 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni @@ -259,7 +259,7 @@ template("chrome_paks") { } input_locales = locales - output_dir = "${invoker.output_dir}/locales" + output_dir = "${invoker.output_dir}/chrome/locales" if (is_mac) { output_locales = locales_as_mac_outputs diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn index 931761ff27de..a181fbeadc86 100644 --- chrome/installer/mini_installer/BUILD.gn +++ chrome/installer/mini_installer/BUILD.gn @@ -133,7 +133,7 @@ template("generate_mini_installer") { inputs = [ "$chrome_dll_file", "$root_out_dir/chrome.exe", - "$root_out_dir/locales/en-US.pak", + "$root_out_dir/chrome/locales/en-US.pak", "$root_out_dir/setup.exe", "//chrome/tools/build/win/makecab.py", release_file,