diff options
author | Mike Klein <mtklein@chromium.org> | 2016-11-03 14:06:31 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-03 19:31:50 +0000 |
commit | 7d3028818ec1b6a653da45387ddf0fa01888cdda (patch) | |
tree | 2dd80fa3d35782b28966eba3d5be22838e40c8b7 /gn | |
parent | 4ef986db65027f53999174279252092ba9b03c9e (diff) |
GN: iOS basics
This doesn't create any apps or bundles or sign anything, but it all compiles and links.
Note the awkward transitional hack I used to make each tool's tool_main() serve as the real main() again when built with GN, while keeping the existing setup with GYP. Fun...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4350
Change-Id: I632753d5d8e5848380854f413bf5905d676bfcf4
Reviewed-on: https://skia-review.googlesource.com/4350
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'gn')
-rw-r--r-- | gn/BUILD.gn | 29 | ||||
-rw-r--r-- | gn/BUILDCONFIG.gn | 2 | ||||
-rw-r--r-- | gn/find_ios_sysroot.py | 10 |
3 files changed, 40 insertions, 1 deletions
diff --git a/gn/BUILD.gn b/gn/BUILD.gn index 81813a39d2..a39217efb0 100644 --- a/gn/BUILD.gn +++ b/gn/BUILD.gn @@ -46,6 +46,10 @@ if (!is_win) { "value") } +if (is_ios) { + ios_sysroot = exec_script("find_ios_sysroot.py", [], "trim string") +} + config("default") { asmflags = [] cflags = [] @@ -178,6 +182,31 @@ config("default") { } } + if (is_ios) { + cflags += [ + "--sysroot=$ios_sysroot", + "--target=$target_cpu-apple-darwin11", + ] + cflags_cc += [ "-stdlib=libc++" ] + ldflags += [ + "--sysroot=$ios_sysroot", + "--target=$target_cpu-apple-darwin11", + "-stdlib=libc++", + ] + libs = [ "objc" ] + + # We used to link all our iOS tools together, so none actually defines main(). + # Instead they each define their own entry point, which our iOS mega-app called. + # If we can we'd like to not do that anymore. While we're building both ways, here's + # our clever hack to give each tool back its own main(). + cflags += [ + "-Ddm_main=main", + "-Dnanobench_main=main", + "-Dtool_main=main", + "-Dtest_main=main", + ] + } + if (is_linux) { libs = [ "pthread" ] } diff --git a/gn/BUILDCONFIG.gn b/gn/BUILDCONFIG.gn index 9a995bb3d1..4ed566866e 100644 --- a/gn/BUILDCONFIG.gn +++ b/gn/BUILDCONFIG.gn @@ -40,7 +40,7 @@ is_win = current_os == "win" if (target_cpu == "") { target_cpu = host_cpu - if (is_android) { + if (is_android || is_ios) { target_cpu = "arm64" } } diff --git a/gn/find_ios_sysroot.py b/gn/find_ios_sysroot.py new file mode 100644 index 0000000000..2d9f8d61d1 --- /dev/null +++ b/gn/find_ios_sysroot.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +# +# Copyright 2016 Google Inc. +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import subprocess + +print subprocess.check_output('xcrun --sdk iphoneos --show-sdk-path'.split()) |