diff options
author | mtklein <mtklein@chromium.org> | 2016-08-26 08:13:04 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-26 08:13:04 -0700 |
commit | 349cecefe21e2b45acc201290cc4e4fa93b4ad76 (patch) | |
tree | f512dd6dc2df81500a82eb42aff49a04c1e1dc77 /gn | |
parent | 22cffcace2ad526f55ba2579e65836d38f009d1a (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.gn | 30 | ||||
-rw-r--r-- | gn/BUILDCONFIG.gn | 50 |
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 } } |