skia2/gn/BUILDCONFIG.gn
Jim Van Verth 0361abf39d Fix setup for iOS simulator on arm64 Macs.
The current setup for the iOS simulator keys off of the fact that iOS
runs on ARM CPUs, and Macs (prior to M1) ran on x64 CPUs. So setting
the target_os to "ios" and the target_cpu to "x64" will indicate use
of the simulator. On M1, they have the same CPU architecture, so we
need another method to indicate use of the simulator SDK.

Also added a check to disable code signing, which is not needed for
running on the simulator.

Bug: skia:12880
Change-Id: I668121010cc557546c4a4e4960601a732bb985c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/526017
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-03-30 20:06:39 +00:00

242 lines
6.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.
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 = ""
clang_win_version = ""
ios_min_target = ""
ios_use_simulator =
target_os == "ios" && (target_cpu == "x86" || target_cpu == "x64")
}
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_wasm = target_os == "wasm"
is_win = current_os == "win"
# This is just to make the Dawn build files happy. Skia itself uses target_os = "linux"
# for ChromeOS, so this variable will not affect Skia proper.
is_chromeos = false
# This is to make the ANGLE build files happy. Skia always uses is_mac and/or is_ios.
is_apple = is_mac || is_ios
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 = is_android || is_ios || is_mac || is_fuchsia || is_wasm ||
(cc == "clang" && cxx == "clang++") || clang_win != ""
if (!is_clang && !is_win) {
is_clang = exec_script("//gn/is_clang.py",
[
cc,
cxx,
],
"value")
}
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")
}
if (clang_win != "" && clang_win_version == "") {
clang_win_version = exec_script("//gn/highest_version_dir.py",
[
"$clang_win/lib/clang",
"[0-9]+\.[0-9]+\.[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/skia:default",
"//gn/skia:no_exceptions",
"//gn/skia:no_rtti",
]
if (!is_debug) {
default_configs += [
"//gn/skia:optimize",
"//gn/skia:NDEBUG",
]
}
if (!is_official_build) {
default_configs += [ "//gn/skia:debug_symbols" ]
}
default_configs += [ "//gn/skia:extra_flags" ]
set_defaults("executable") {
configs = [ "//gn/skia: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
}
}
skia_target_default_configs = []
if (!is_official_build) {
skia_target_default_configs += [ "//gn/skia:warnings" ]
}
skia_header_target_default_configs = []
if (!is_official_build) {
skia_header_target_default_configs +=
[ "//gn/skia:warnings_for_public_headers" ]
}
if (is_win) {
# Windows tool chain
set_default_toolchain("//gn/toolchain:msvc")
default_toolchain_name = "msvc"
host_toolchain = "msvc"
} else if (is_wasm) {
set_default_toolchain("//gn/toolchain:wasm")
default_toolchain_name = "wasm"
host_toolchain = "wasm"
} else {
# GCC-like toolchains, including Clang.
set_default_toolchain("//gn/toolchain:gcc_like")
default_toolchain_name = "gcc_like"
host_toolchain = "gcc_like_host"
}