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
|
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
|
# For 'shell' see https://ninja-build.org/manual.html#ref_rule_command
|
||||||
if (host_os == "win") {
|
if (host_os == "win") {
|
||||||
shell = "cmd.exe /c "
|
shell = "cmd.exe /c "
|
||||||
@ -234,6 +239,7 @@ template("gcc_like_toolchain") {
|
|||||||
ar = invoker.ar
|
ar = invoker.ar
|
||||||
cc = invoker.cc
|
cc = invoker.cc
|
||||||
cxx = invoker.cxx
|
cxx = invoker.cxx
|
||||||
|
link = invoker.link
|
||||||
lib_switch = "-l"
|
lib_switch = "-l"
|
||||||
lib_dir_switch = "-L"
|
lib_dir_switch = "-L"
|
||||||
|
|
||||||
@ -330,7 +336,7 @@ template("gcc_like_toolchain") {
|
|||||||
_end_group = ""
|
_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" ]
|
outputs = [ "{{root_out_dir}}/$soname" ]
|
||||||
output_prefix = "lib"
|
output_prefix = "lib"
|
||||||
default_output_extension = ".so"
|
default_output_extension = ".so"
|
||||||
@ -357,7 +363,7 @@ template("gcc_like_toolchain") {
|
|||||||
_start_group = ""
|
_start_group = ""
|
||||||
_end_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" ]
|
outputs = [ "$exe_name" ]
|
||||||
description = "link {{output}}"
|
description = "link {{output}}"
|
||||||
@ -402,6 +408,7 @@ gcc_like_toolchain("gcc_like") {
|
|||||||
ar = target_ar
|
ar = target_ar
|
||||||
cc = target_cc
|
cc = target_cc
|
||||||
cxx = target_cxx
|
cxx = target_cxx
|
||||||
|
link = target_link
|
||||||
}
|
}
|
||||||
|
|
||||||
gcc_like_toolchain("gcc_like_host") {
|
gcc_like_toolchain("gcc_like_host") {
|
||||||
@ -410,4 +417,5 @@ gcc_like_toolchain("gcc_like_host") {
|
|||||||
ar = host_ar
|
ar = host_ar
|
||||||
cc = host_cc
|
cc = host_cc
|
||||||
cxx = host_cxx
|
cxx = host_cxx
|
||||||
|
link = host_link
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user