3e8012e74f
is_skia_standalone will be defined and set to true iff we're using our standalone BUILDCONFIG.gn. Any other build (Fuchsia, Chrome, Pdfium) will have their own BUILDCONFIG.gn, which presumably does not define is_skia_standalone. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357963002 Review-Url: https://codereview.chromium.org/2357963002
159 lines
3.5 KiB
Plaintext
159 lines
3.5 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.
|
|
|
|
is_skia_standalone = true
|
|
|
|
# It's best to keep the names and defaults of is_foo flags consistent with Chrome.
|
|
|
|
declare_args() {
|
|
is_official_build = false
|
|
is_component_build = false
|
|
ndk = ""
|
|
ndk_api = 0 # 0 == picked automatically for target_cpu.
|
|
sanitize = ""
|
|
}
|
|
declare_args() {
|
|
is_debug = !is_official_build
|
|
}
|
|
|
|
assert(!(is_debug && is_official_build))
|
|
|
|
# Platform detection
|
|
if (target_os == "") {
|
|
target_os = host_os
|
|
if (ndk != "") {
|
|
target_os = "android"
|
|
}
|
|
}
|
|
if (current_os == "") {
|
|
current_os = target_os
|
|
}
|
|
|
|
is_android = current_os == "android"
|
|
is_fuchsia = current_os == "fuchsia"
|
|
is_ios = current_os == "ios"
|
|
is_linux = current_os == "linux"
|
|
is_mac = current_os == "mac"
|
|
is_win = current_os == "win"
|
|
|
|
if (target_cpu == "") {
|
|
target_cpu = host_cpu
|
|
if (is_android) {
|
|
target_cpu = "arm64"
|
|
}
|
|
}
|
|
if (current_cpu == "") {
|
|
current_cpu = target_cpu
|
|
}
|
|
|
|
if (is_android) {
|
|
ndk_host = ""
|
|
ndk_target = ""
|
|
ndk_platform = ""
|
|
ndk_stdlib = ""
|
|
ndk_gccdir = ""
|
|
|
|
if (ndk_api == 0) {
|
|
ndk_api = 18
|
|
if (target_cpu == "arm64" || target_cpu == "mips64el" ||
|
|
target_cpu == "x64") {
|
|
ndk_api = 21
|
|
}
|
|
}
|
|
|
|
if (host_os == "linux") {
|
|
ndk_host = "linux-x86_64"
|
|
} else if (host_os == "mac") {
|
|
ndk_host = "darwin-x86_64"
|
|
}
|
|
|
|
if (target_cpu == "arm64") {
|
|
ndk_target = "aarch64-linux-android"
|
|
ndk_platform = "android-${ndk_api}/arch-arm64"
|
|
ndk_stdlib = "arm64-v8a"
|
|
ndk_gccdir = ndk_target
|
|
} else if (target_cpu == "arm") {
|
|
ndk_target = "arm-linux-androideabi"
|
|
ndk_platform = "android-${ndk_api}/arch-arm"
|
|
ndk_stdlib = "armeabi-v7a"
|
|
ndk_gccdir = ndk_target
|
|
} else if (target_cpu == "mips64el") {
|
|
ndk_target = "mips64el-linux-android"
|
|
ndk_platform = "android-${ndk_api}/arch-mips64"
|
|
ndk_stdlib = "mips64"
|
|
ndk_gccdir = ndk_target
|
|
} else if (target_cpu == "mipsel") {
|
|
ndk_target = "mipsel-linux-android"
|
|
ndk_platform = "android-${ndk_api}/arch-mips"
|
|
ndk_stdlib = "mips"
|
|
ndk_gccdir = ndk_target
|
|
} else if (target_cpu == "x64") {
|
|
ndk_target = "x86_64-linux-android"
|
|
ndk_platform = "android-${ndk_api}/arch-x86_64"
|
|
ndk_stdlib = "x86_64"
|
|
ndk_gccdir = ndk_stdlib
|
|
} else if (target_cpu == "x86") {
|
|
ndk_target = "i686-linux-android"
|
|
ndk_platform = "android-${ndk_api}/arch-x86"
|
|
ndk_stdlib = "x86"
|
|
ndk_gccdir = ndk_stdlib
|
|
}
|
|
}
|
|
|
|
# A component is either a static or a shared library.
|
|
template("component") {
|
|
_component_mode = "static_library"
|
|
if (is_component_build) {
|
|
_component_mode = "shared_library"
|
|
}
|
|
|
|
target(_component_mode, target_name) {
|
|
forward_variables_from(invoker, "*")
|
|
}
|
|
}
|
|
|
|
# Default configs
|
|
default_configs = [
|
|
"//gn:default",
|
|
"//gn:no_rtti",
|
|
]
|
|
if (!is_debug) {
|
|
default_configs += [ "//gn:release" ]
|
|
}
|
|
if (!is_official_build) {
|
|
default_configs += [ "//gn:debug_symbols" ]
|
|
}
|
|
|
|
set_defaults("executable") {
|
|
configs = default_configs + [ "//gn:executable" ]
|
|
}
|
|
|
|
set_defaults("source_set") {
|
|
configs = default_configs
|
|
}
|
|
|
|
set_defaults("static_library") {
|
|
configs = default_configs
|
|
}
|
|
|
|
set_defaults("shared_library") {
|
|
configs = default_configs
|
|
}
|
|
|
|
set_defaults("component") {
|
|
configs = default_configs
|
|
if (!is_component_build) {
|
|
complete_static_lib = true
|
|
}
|
|
}
|
|
|
|
if (is_win) {
|
|
# Windows tool chain
|
|
set_default_toolchain("//gn:msvc")
|
|
} else {
|
|
# GCC-like toolchains, including Clang.
|
|
set_default_toolchain("//gn:gcc_like")
|
|
}
|