aboutsummaryrefslogtreecommitdiffhomepage
path: root/gn
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-08-26 08:13:04 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-26 08:13:04 -0700
commit349cecefe21e2b45acc201290cc4e4fa93b4ad76 (patch)
treef512dd6dc2df81500a82eb42aff49a04c1e1dc77 /gn
parent22cffcace2ad526f55ba2579e65836d38f009d1a (diff)
GN: mac host and armv7 target
Just when I thought it wouldn't be useful to override ar... Tested by building 32- and 64-bit DM on my MBP and running it on my N5x. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2279703003 Review-Url: https://codereview.chromium.org/2279703003
Diffstat (limited to 'gn')
-rw-r--r--gn/BUILD.gn30
-rw-r--r--gn/BUILDCONFIG.gn50
2 files changed, 63 insertions, 17 deletions
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 0a56fa206f..fc518ffc59 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -4,10 +4,12 @@
# found in the LICENSE file.
declare_args() {
+ ar = "ar"
cc = "cc"
cxx = "c++"
if (is_android) {
+ ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar"
cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang"
cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++"
}
@@ -48,14 +50,27 @@ config("default") {
"-Wnon-virtual-dtor",
]
if (current_cpu == "arm") {
- cflags += [ "-mfpu=neon" ]
+ cflags += [
+ "-march=armv7-a",
+ "-mfpu=neon",
+ "-mthumb",
+ ]
+ } else if (current_cpu == "mipsel") {
+ cflags += [
+ "-march=mips32r2",
+ "-mdspr2",
+ ]
}
if (is_android) {
- asmflags = [ "--target=$ndk_target" ]
+ asmflags = [
+ "--target=$ndk_target",
+ "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
+ ]
cflags += [
"--sysroot=$ndk/platforms/$ndk_platform",
"--target=$ndk_target",
+ "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
]
cflags_cc += [
"-isystem$ndk/sources/android/support/include",
@@ -64,12 +79,12 @@ config("default") {
ldflags = [
"--sysroot=$ndk/platforms/$ndk_platform",
"--target=$ndk_target",
- "-B$ndk/toolchains/$ndk_target-4.9/prebuilt/$ndk_host/$ndk_target/bin",
+ "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
"-pie",
]
lib_dirs = [
"$ndk/sources/cxx-stl/llvm-libc++/libs/$ndk_stdlib",
- "$ndk/toolchains/$ndk_target-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.9.x",
+ "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.9.x",
]
libs = [
# Order matters here! Keep these three in exactly this order.
@@ -77,6 +92,9 @@ config("default") {
"c++abi",
"android_support",
]
+ if (target_cpu == "arm") {
+ libs += [ "unwind" ]
+ }
}
if (is_linux) {
@@ -136,13 +154,13 @@ toolchain("gcc_like") {
}
tool("alink") {
- command = "rm -f {{output}} && ar rcs {{output}} {{inputs}}"
+ 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}} ..."
+ description = "$ar {{output}} ..."
}
tool("solink") {
diff --git a/gn/BUILDCONFIG.gn b/gn/BUILDCONFIG.gn
index 6aa4451e59..10f3244f55 100644
--- a/gn/BUILDCONFIG.gn
+++ b/gn/BUILDCONFIG.gn
@@ -22,9 +22,16 @@ 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 (ndk != "") {
+ if (is_android) {
target_cpu = "arm64"
}
}
@@ -32,28 +39,49 @@ if (current_cpu == "") {
current_cpu = target_cpu
}
-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"
-
-is_posix = !is_win
-
if (is_android) {
ndk_host = ""
ndk_target = ""
ndk_platform = ""
ndk_stdlib = ""
+ nkd_gccdir = ""
- if (host_os == "linux" && host_cpu == "x64") {
+ 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-21/arch-arm64"
ndk_stdlib = "arm64-v8a"
+ ndk_gccdir = ndk_target
+ } else if (target_cpu == "arm") {
+ ndk_target = "arm-linux-androideabi"
+ ndk_platform = "android-18/arch-arm"
+ ndk_stdlib = "armeabi-v7a"
+ ndk_gccdir = ndk_target
+ } else if (target_cpu == "mips64el") {
+ ndk_target = "mips64el-linux-android"
+ ndk_platform = "android-21/arch-mips64"
+ ndk_stdlib = "mips64"
+ ndk_gccdir = ndk_target
+ } else if (target_cpu == "mipsel") {
+ ndk_target = "mipsel-linux-android"
+ ndk_platform = "android-18/arch-mips"
+ ndk_stdlib = "mips"
+ ndk_gccdir = ndk_target
+ } else if (target_cpu == "x64") {
+ ndk_target = "x86_64-linux-android"
+ ndk_platform = "android-21/arch-x86_64"
+ ndk_stdlib = "x86_64"
+ ndk_gccdir = ndk_stdlib
+ } else if (target_cpu == "x86") {
+ ndk_target = "i686-linux-android"
+ ndk_platform = "android-18/arch-x86"
+ ndk_stdlib = "x86"
+ ndk_gccdir = ndk_stdlib
}
}