123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- # 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 = ""
- # Android 5.0, Lollipop
- ndk_api = 21
- sanitize = ""
- ar = "ar"
- cc = "cc"
- cxx = "c++"
- win_sdk = "C:/Program Files (x86)/Windows Kits/10"
- win_sdk_version = ""
- win_vc = ""
- win_toolchain_version = ""
- clang_win = ""
- skia_moltenvk_path = ""
- werror = false
- }
- declare_args() {
- is_debug = !is_official_build
- }
- assert(!(is_debug && is_official_build))
- if (target_cpu == "wasm") {
- target_os = "wasm"
- }
- # 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" || current_os == "tvos"
- is_tvos = current_os == "tvos"
- 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 || is_ios) {
- target_cpu = "arm64"
- }
- }
- if (target_cpu == "x86_64") {
- target_cpu = "x64"
- }
- if (current_cpu == "") {
- current_cpu = target_cpu
- }
- is_clang = false
- if (is_android) {
- ndk_host = ""
- ndk_target = ""
- ndk_gdbserver = ""
- if (host_os == "linux") {
- ndk_host = "linux-x86_64"
- } else if (host_os == "mac") {
- ndk_host = "darwin-x86_64"
- } else if (host_os == "win") {
- ndk_host = "windows-x86_64"
- }
- if (target_cpu == "arm64") {
- ndk_target = "aarch64-linux-android"
- ndk_gdbserver = "prebuilt/android-arm64/gdbserver/gdbserver"
- } else if (target_cpu == "arm") {
- ndk_target = "armv7a-linux-androideabi"
- ndk_gdbserver = "prebuilt/android-arm/gdbserver/gdbserver"
- } else if (target_cpu == "x64") {
- ndk_target = "x86_64-linux-android"
- ndk_gdbserver = "prebuilt/android-x86_64/gdbserver/gdbserver"
- } else if (target_cpu == "x86") {
- ndk_target = "i686-linux-android"
- ndk_gdbserver = "prebuilt/android-x86/gdbserver/gdbserver"
- }
- }
- if (target_os == "win") {
- # By default we look for 2017 (Enterprise, Pro, and Community), then 2015. If MSVC is installed in a
- # non-default location, you can set win_vc to inform us where it is.
- if (win_vc == "") {
- win_vc = exec_script("//gn/find_msvc.py", [], "trim string")
- }
- assert(win_vc != "") # Could not find VC installation. Set win_vc to your VC directory.
- }
- if (target_os == "win") {
- if (win_toolchain_version == "") {
- win_toolchain_version = exec_script("//gn/highest_version_dir.py",
- [
- "$win_vc/Tools/MSVC",
- "[0-9]{2}\.[0-9]{2}\.[0-9]{5}",
- ],
- "trim string")
- }
- if (win_sdk_version == "") {
- win_sdk_version = exec_script("//gn/highest_version_dir.py",
- [
- "$win_sdk/Include",
- "[0-9]{2}\.[0-9]\.[0-9]{5}\.[0-9]",
- ],
- "trim string")
- }
- }
- # 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_exceptions",
- "//gn:no_rtti",
- ]
- if (!is_debug) {
- default_configs += [
- "//gn:optimize",
- "//gn:NDEBUG",
- ]
- }
- if (!is_official_build) {
- default_configs += [
- "//gn:debug_symbols",
- "//gn:warnings",
- ]
- }
- default_configs += [
- "//gn:warnings_except_public_headers",
- "//gn:extra_flags",
- ]
- if (sanitize == "MSVC") {
- default_configs += [ "//gn:msvc_rtc" ]
- }
- set_defaults("executable") {
- configs = [ "//gn:executable" ] + default_configs
- }
- 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/toolchain:msvc")
- default_toolchain_name = "msvc"
- host_toolchain = "msvc"
- } else {
- # GCC-like toolchains, including Clang.
- set_default_toolchain("//gn/toolchain:gcc_like")
- default_toolchain_name = "gcc_like"
- host_toolchain = "gcc_like_host"
- }
|