0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 09:31:22 -05:00

build: override host_toolchain on windows to use sccache with v8

This commit is contained in:
Bert Belder 2018-09-07 20:19:44 +02:00
parent 3deaf99a92
commit 30b268dd7d
No known key found for this signature in database
GPG key ID: 7A77887B2E2ED461
2 changed files with 19 additions and 14 deletions

View file

@ -2,14 +2,18 @@
import("//build/toolchain/cc_wrapper.gni")
# Verify that cc_wrapper is correctly set up on Windows.
if (is_win && cc_wrapper != "" && custom_toolchain == "") {
suggested_toolchain = "//build_extra/toolchain/win:win_clang_$target_cpu"
# Verify that the cc_wrapper/toolchain combo correctly set up on Windows.
if (is_win && cc_wrapper != "") {
cc_wrapper_toolchain = "//build_extra/toolchain/win:win_clang_$target_cpu"
toolchain_supports_cc_wrapper = cc_wrapper_toolchain == default_toolchain &&
cc_wrapper_toolchain == host_toolchain
# Use print instead of assert with message for readability.
print(
"The 'cc_wrapper' option isn't supported by the default Windows toolchain.")
print("To make it work, add the option:")
print(" custom_toolchain=\"$suggested_toolchain\"")
assert(custom_toolchain != "")
if (!toolchain_supports_cc_wrapper) {
# Using print instead of assert-with-message for readability of the output.
print("The 'cc_wrapper' option isn't supported by the default Windows" +
" toolchain. To make it work, add these gn arguments:")
print(" custom_toolchain=\"$cc_wrapper_toolchain\"")
print(" host_toolchain=\"$cc_wrapper_toolchain\"")
assert(toolchain_supports_cc_wrapper)
}
}

View file

@ -59,12 +59,13 @@ def get_gn_args():
# Check if ccache or sccache are in the path, and if so we set cc_wrapper.
cc_wrapper = find_executable("ccache") or find_executable("sccache")
if cc_wrapper:
out += [r'cc_wrapper="%s"' % cc_wrapper]
# Windows needs a custom toolchain for cc_wrapper to work.
out += ['cc_wrapper="%s"' % cc_wrapper]
# For cc_wrapper to work on Windows, we need to select our own toolchain
# by overriding 'custom_toolchain' and 'host_toolchain'.
# TODO: Is there a way to use it without the involvement of args.gn?
if os.name == "nt":
out += [
'custom_toolchain="//build_extra/toolchain/win:win_clang_x64"'
]
tc = "//build_extra/toolchain/win:win_clang_x64"
out += ['custom_toolchain="%s"' % tc, 'host_toolchain="%s"' % tc]
print "DENO_BUILD_ARGS:", out