diff --git .gn .gn index cd7ed79..0c318f9 100644 --- .gn +++ .gn @@ -257,6 +257,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 d24c2da..7f0d451 100644 --- BUILD.gn +++ BUILD.gn @@ -158,6 +158,7 @@ group("gn_all") { # and whether there should be other targets that are iOS-only and missing. 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 e8b0849..0bfc676 100644 --- build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py @@ -132,18 +132,20 @@ 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. 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) + 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 90a562d..8c63b12 100755 --- build/vs_toolchain.py +++ build/vs_toolchain.py @@ -78,11 +78,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 4e303dc..a0398f1 100644 --- chrome/chrome_paks.gni +++ chrome/chrome_paks.gni @@ -249,7 +249,7 @@ template("chrome_paks") { additional_source_patterns = invoker.additional_locale_source_patterns } 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 5d2fe25..dd08482 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, ]