allow overriding {target,host}_link = ... in GN
This lets it be something other than cxx, e.g. to compile with Goma but to link with the NDK locally, declare_args() { home = getenv("HOME") use_goma = true _target = "aarch64-linux-android21" } ndk = "$home/ndk" extra_asmflags = [] extra_cflags = [] extra_ldflags = [] if (use_goma) { cc = "$home/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang" cxx = "$home/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang++" cc_wrapper = "$home/depot_tools/.cipd_bin/gomacc" target_cc = cc target_cxx = cxx target_link = "$ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=$_target" extra_asmflags += [ "--target=$_target" ] extra_cflags += [ "--target=$_target" ] } else { cc_wrapper = "ccache" } is_debug = true if (is_debug) { extra_cflags += [ "-Os" ] } Change-Id: I17b9c3f72bc308e40c1565536d04d0673efd4ef1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332616 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
This commit is contained in:
parent
107e862eb6
commit
0266c8a4e6
@ -47,6 +47,11 @@ declare_args() {
|
||||
link_pool_depth = -1
|
||||
}
|
||||
|
||||
declare_args() {
|
||||
host_link = host_cxx
|
||||
target_link = target_cxx
|
||||
}
|
||||
|
||||
# For 'shell' see https://ninja-build.org/manual.html#ref_rule_command
|
||||
if (host_os == "win") {
|
||||
shell = "cmd.exe /c "
|
||||
@ -234,6 +239,7 @@ template("gcc_like_toolchain") {
|
||||
ar = invoker.ar
|
||||
cc = invoker.cc
|
||||
cxx = invoker.cxx
|
||||
link = invoker.link
|
||||
lib_switch = "-l"
|
||||
lib_dir_switch = "-L"
|
||||
|
||||
@ -330,7 +336,7 @@ template("gcc_like_toolchain") {
|
||||
_end_group = ""
|
||||
}
|
||||
|
||||
command = "$cxx -shared {{ldflags}} $_start_group @$rspfile {{frameworks}} {{solibs}} $_end_group {{libs}} $rpath -o {{output}}"
|
||||
command = "$link -shared {{ldflags}} $_start_group @$rspfile {{frameworks}} {{solibs}} $_end_group {{libs}} $rpath -o {{output}}"
|
||||
outputs = [ "{{root_out_dir}}/$soname" ]
|
||||
output_prefix = "lib"
|
||||
default_output_extension = ".so"
|
||||
@ -357,7 +363,7 @@ template("gcc_like_toolchain") {
|
||||
_start_group = ""
|
||||
_end_group = ""
|
||||
}
|
||||
command = "$cxx {{ldflags}} $_start_group @$rspfile {{frameworks}} {{solibs}} $_end_group {{libs}} -o $exe_name"
|
||||
command = "$link {{ldflags}} $_start_group @$rspfile {{frameworks}} {{solibs}} $_end_group {{libs}} -o $exe_name"
|
||||
|
||||
outputs = [ "$exe_name" ]
|
||||
description = "link {{output}}"
|
||||
@ -402,6 +408,7 @@ gcc_like_toolchain("gcc_like") {
|
||||
ar = target_ar
|
||||
cc = target_cc
|
||||
cxx = target_cxx
|
||||
link = target_link
|
||||
}
|
||||
|
||||
gcc_like_toolchain("gcc_like_host") {
|
||||
@ -410,4 +417,5 @@ gcc_like_toolchain("gcc_like_host") {
|
||||
ar = host_ar
|
||||
cc = host_cc
|
||||
cxx = host_cxx
|
||||
link = host_link
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user