d434b01c7e
As usual, might as well roll, and this new behavior is a small convenience. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2231833002 Review-Url: https://codereview.chromium.org/2231833002
140 lines
3.2 KiB
Plaintext
140 lines
3.2 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
declare_args() {
|
|
ar = "ar"
|
|
cc = "cc"
|
|
cxx = "c++"
|
|
}
|
|
|
|
config("no_rtti") {
|
|
cflags_cc = [ "-fno-rtti" ]
|
|
}
|
|
|
|
config("default") {
|
|
cflags = [
|
|
"-g",
|
|
"-fstrict-aliasing",
|
|
"-fPIC",
|
|
"-fvisibility=hidden",
|
|
|
|
"-Werror",
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Winit-self",
|
|
"-Wpointer-arith",
|
|
"-Wsign-compare",
|
|
"-Wvla",
|
|
|
|
"-Wno-deprecated-declarations",
|
|
"-Wno-unused-parameter",
|
|
]
|
|
cflags_cc = [
|
|
"-std=c++11",
|
|
"-fno-exceptions",
|
|
"-fno-threadsafe-statics",
|
|
"-fvisibility-inlines-hidden",
|
|
|
|
"-Wnon-virtual-dtor",
|
|
]
|
|
}
|
|
|
|
config("release") {
|
|
cflags = [ "-Os" ]
|
|
defines = [ "NDEBUG" ]
|
|
}
|
|
|
|
config("executable") {
|
|
if (is_mac) {
|
|
ldflags = [ "-Wl,-rpath,@loader_path/." ]
|
|
} else if (is_linux) {
|
|
ldflags = [ "-Wl,-rpath,\$ORIGIN" ]
|
|
}
|
|
}
|
|
|
|
pool("link_pool") {
|
|
depth = 0 #unlimited
|
|
}
|
|
|
|
toolchain("gcc_like") {
|
|
lib_switch = "-l"
|
|
lib_dir_switch = "-L"
|
|
|
|
tool("cc") {
|
|
depfile = "{{output}}.d"
|
|
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
|
depsformat = "gcc"
|
|
outputs = [
|
|
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
|
]
|
|
description = "$cc ... -o {{output}}"
|
|
}
|
|
|
|
tool("cxx") {
|
|
depfile = "{{output}}.d"
|
|
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
|
depsformat = "gcc"
|
|
outputs = [
|
|
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
|
]
|
|
description = "$cxx ... -o {{output}}"
|
|
}
|
|
|
|
tool("asm") {
|
|
depfile = "{{output}}.d"
|
|
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{asmflags}} -c {{source}} -o {{output}}"
|
|
depsformat = "gcc"
|
|
outputs = [
|
|
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
|
]
|
|
description = "$cc ... -o {{output}}"
|
|
}
|
|
|
|
tool("alink") {
|
|
command = "rm -f {{output}} && $ar rcs {{output}} {{inputs}}"
|
|
outputs = [
|
|
"{{root_out_dir}}/{{target_output_name}}{{output_extension}}",
|
|
]
|
|
default_output_extension = ".a"
|
|
output_prefix = "lib"
|
|
description = "$ar {{output}} ..."
|
|
}
|
|
|
|
tool("solink") {
|
|
soname = "{{target_output_name}}{{output_extension}}"
|
|
|
|
rpath = "-Wl,-soname,$soname"
|
|
if (is_mac) {
|
|
rpath = "-Wl,-install_name,@rpath/$soname"
|
|
}
|
|
|
|
command = "$cxx -shared {{ldflags}} {{inputs}} {{solibs}} {{libs}} $rpath -o {{output}}"
|
|
outputs = [
|
|
"{{root_out_dir}}/$soname",
|
|
]
|
|
output_prefix = "lib"
|
|
default_output_extension = ".so"
|
|
description = "$cxx -shared ... -o {{output}}"
|
|
pool = ":link_pool"
|
|
}
|
|
|
|
tool("link") {
|
|
command = "$cxx {{ldflags}} {{inputs}} {{solibs}} {{libs}} -o {{output}}"
|
|
outputs = [
|
|
"{{root_out_dir}}/{{target_output_name}}{{output_extension}}",
|
|
]
|
|
description = "$cxx ... -o {{output}}"
|
|
pool = ":link_pool"
|
|
}
|
|
|
|
tool("stamp") {
|
|
command = "touch {{output}}"
|
|
}
|
|
|
|
tool("copy") {
|
|
command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} && cp -af {{source}} {{output}})"
|
|
}
|
|
}
|