blob: dd0d3e327dbe2cd0b67bdb1fad186b5fcfaff7db [file] [log] [blame]
# Prevent generating a makefile that attempts to create a lib
TEMPLATE = aux
# Pick up the host toolchain
option(host_build)
GN_HOST_CPU = $$gnArch($$QT_ARCH)
!isEmpty(QT_TARGET_ARCH): GN_TARGET_CPU = $$gnArch($$QT_TARGET_ARCH)
else: GN_TARGET_CPU = $$GN_HOST_CPU
GN_OS = $$gnOS()
clang: GN_CLANG = true
else: GN_CLANG = false
use_gold_linker: GN_USE_GOLD=true
else: GN_USE_GOLD=false
GN_V8_HOST_CPU = $$GN_HOST_CPU
contains(GN_TARGET_CPU, "arm")|contains(GN_TARGET_CPU, "mipsel")|contains(GN_TARGET_CPU, "x86") {
# The v8 snapshot need a host that matches bitwidth, so we build makesnapshot to 32-bit variants of host.
contains(GN_V8_HOST_CPU, x64): GN_V8_HOST_CPU = "x86"
else: contains(GN_V8_HOST_CPU, arm64): GN_V8_HOST_CPU = "arm"
else: contains(GN_V8_HOST_CPU, mips64el): GN_V8_HOST_CPU = "mipsel"
}
GN_HOST_EXTRA_CPPFLAGS = $$(GN_HOST_TOOLCHAIN_EXTRA_CPPFLAGS)
# We always use the gcc_toolchain, because clang_toolchain is just
# a broken wrapper around it for Google's custom clang binaries.
GN_CONTENTS = \
"import(\"//build/config/sysroot.gni\")" \
"import(\"//build/toolchain/gcc_toolchain.gni\")" \
"gcc_toolchain(\"host\") {" \
" cc = \"$$which($$QMAKE_CC)\" " \
" cxx = \"$$which($$QMAKE_CXX)\" " \
" ld = \"$$which($$QMAKE_LINK)\" " \
" ar = \"$$which(ar)\" " \
" nm = \"$$which(nm)\" " \
" extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \
" toolchain_args = { " \
" current_os = \"$$GN_OS\" " \
" current_cpu = \"$$GN_HOST_CPU\" " \
" is_clang = $$GN_CLANG " \
" use_gold = $$GN_USE_GOLD " \
" } " \
"}" \
"gcc_toolchain(\"v8_snapshot\") {" \
" cc = \"$$which($$QMAKE_CC)\" " \
" cxx = \"$$which($$QMAKE_CXX)\" " \
" ld = \"$$which($$QMAKE_LINK)\" " \
" ar = \"$$which(ar)\" " \
" nm = \"$$which(nm)\" " \
" toolchain_args = { " \
" current_os = \"$$GN_OS\" " \
" current_cpu = \"$$GN_V8_HOST_CPU\" " \
" v8_current_cpu = \"$$GN_TARGET_CPU\" " \
" is_clang = $$GN_CLANG " \
" use_gold = $$GN_USE_GOLD " \
" } " \
" } "
GN_FILE = $$OUT_PWD/../toolchain/BUILD.gn
!build_pass {
write_file($$GN_FILE, GN_CONTENTS)
}