diff --git .gn .gn index 441b8ac..c3fe3b1 100644 --- .gn +++ .gn @@ -271,6 +271,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 d274819..191ea00 100644 --- BUILD.gn +++ BUILD.gn @@ -170,6 +170,7 @@ group("gn_all") { if (!is_ios && !is_fuchsia) { deps += [ "//cc:cc_unittests", + "//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 982fbe8..e757be46 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/setup_toolchain.py build/toolchain/win/setup_toolchain.py index 8150d3a..39441ef 100644 --- build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py @@ -132,17 +132,21 @@ def _LoadToolchainEnv(cpu, sdk_dir): # variable. if 'VSINSTALLDIR' in os.environ: del os.environ['VSINSTALLDIR'] - other_path = os.path.normpath(os.path.join( + script_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 - # Chromium requires the 10.0.14393.0 SDK or higher - previous versions don't - # have all of the required declarations. - args = [script_path, 'amd64_x86' if cpu == 'x86' else 'amd64'] - variables = _LoadEnvFromBat(args) + if os.path.exists(script_path): + # Chromium requires the 10.0.14393.0 SDK. Previous versions don't have all + # of the required declarations, and 10.0.15063.0 is buggy. + args = [script_path, 'amd64_x86' if cpu == 'x86' else 'amd64', + '10.0.14393.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 3b2c727..60e4984 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py @@ -79,11 +79,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 a7778f9..5e3eb75a 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni @@ -252,7 +252,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 2afab1a..c8791ea 100644 --- chrome/installer/mini_installer/BUILD.gn +++ chrome/installer/mini_installer/BUILD.gn @@ -128,7 +128,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", release_file, ]