aboutsummaryrefslogtreecommitdiffhomepage
path: root/gn/BUILDCONFIG.gn
Commit message (Collapse)AuthorAge
* GN: spin off :no_exceptions as its own config.Gravatar Mike Klein2016-10-26
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4001 Change-Id: Ibaa10b9b6f566958b7e6622eedbc30a7010260b3 Reviewed-on: https://skia-review.googlesource.com/4001 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Build for Android from Windows, work in progress.Gravatar Mike Klein2016-10-26
| | | | | | | | | | | | | | | | | Pretty vanilla stuff here, mostly just making the gcc-like toolchain Windows friendly. I was having trouble getting rm -r {{output}} && $ar rcs {{output}} @$rspfile to work without deleting my ar.exe, so I chickened out the usual way by adding gn/ar.py. I've also updated bin/droid to work with Git Bash on Windows. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3751 Change-Id: I04c34ccc91e6a291c11ac4e7a7a0ffe41d879fe6 Reviewed-on: https://skia-review.googlesource.com/3751 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* GN/Win: warnings and warn-as-errorGravatar Mike Klein2016-10-13
| | | | | | | | | | | CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Win-MSVC-x86-Debug-Exceptions-Trybot,Build-Win-MSVC-x86_64-Debug-GN-Trybot,Build-Win-MSVC-x86_64-Release-GN-Trybot GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3258 Change-Id: Ia2b85904bed1e6ca72c68abaecf6c2854795342c Reviewed-on: https://skia-review.googlesource.com/3258 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Update to Android NDK r13.Gravatar Mike Klein2016-10-11
| | | | | | | | | | | | | | | | | | | The libc++ include paths have changed very slightly. I've left GN compatible with both older r12 NDKs and the new r13 to smooth the transition. The libc++ in r13 depends on long-double math.h functions (cosl, atanl, etc.) only available in Android API v21 (Lollipop) and up. That's what the 64-bit bots were already on, so we just pull the 32-bit bots up to the same target. Conveniently, the oldest bots we have (N7 and N10) are on Lollipop. The r13 MIPS64 sysroots are a little weird... /usr/include and /usr/lib64 but no /usr/lib. That'd be fine---we only want 64-bit builds---but Clang searches for /usr/lib64 via its path to /usr/lib, and without at least an empty /usr/lib, it can't find /usr/lib64. So you'll see a special mips64el section in the GN config where we do this all manually (other platforms pick this all up correctly from --sysroot). I've chosen to do this rather than fix it up in the asset create.py scripts so that we stay compatible with vanilla NDKs, which is convenient for developers. CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Mac-Clang-arm64-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-arm-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-arm-Release-GN_Android-Trybot,Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs-Trybot,Build-Ubuntu-Clang-arm64-Debug-GN_Android_Vulkan-Trybot,Build-Ubuntu-Clang-arm64-Release-GN_Android-Trybot,Build-Ubuntu-Clang-mips64el-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-mips64el-Release-GN_Android-Trybot,Build-Ubuntu-Clang-mips64el-Release-GN_Android-Trybot,Build-Ubuntu-Clang-mipsel-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-mipsel-Release-GN_Android-Trybot,Build-Ubuntu-Clang-x64-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-x64-Release-GN_Android-Trybot,Build-Ubuntu-Clang-x86-Debug-GN_Android-Trybot,Build-Ubuntu-Clang-x86-Release-GN_Android-Trybot BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3180 Change-Id: I6f3b5d9411ded0ee49c1099490f41fa86a8736f8 Reviewed-on: https://skia-review.googlesource.com/3180 Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Fold extra_*_flags into GN as a config.Gravatar Mike Klein2016-10-04
| | | | | | | | | | | | | | This should make them visible to things like gn_to_cmake.py. I'm not exactly sure what this implies about ordering and overriding. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2938 Change-Id: I0740613993fb5bbfb8363cfa126d1f59768abf60 Reviewed-on: https://skia-review.googlesource.com/2938 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* GN: is_skia_standaloneGravatar mtklein2016-09-21
| | | | | | | | | | | | is_skia_standalone will be defined and set to true iff we're using our standalone BUILDCONFIG.gn. Any other build (Fuchsia, Chrome, Pdfium) will have their own BUILDCONFIG.gn, which presumably does not define is_skia_standalone. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357963002 Review-Url: https://codereview.chromium.org/2357963002
* Compile the skia library for windows using gn.Gravatar herb2016-09-16
| | | | | | | | TBR=mtklein@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2347443002 Review-Url: https://codereview.chromium.org/2347443002
* GN: add is_official_buildGravatar mtklein2016-09-14
| | | | | | | | | | | | | | | | ... and use it to control debug symbols and SK_ALLOW_STATIC_GLOBAL_INITIALIZERS. This will most directly have the effect of disabling GLProgramsTest and a bunch of similar failing Vk tests on Android. Hopefully this makes the N7 trybot go green, keeping the N5 trybot green. Just running the N10 for fun. (is_official_build is how Chrome terms this sort of ReleaseForReal build.) BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340723003 Review-Url: https://codereview.chromium.org/2340723003
* GN: Android Vulkan supportGravatar mtklein2016-09-14
| | | | | | | | | | | | | | | | | | Android's the easiest place to start supporting Vulkan, so it's up first. ndk_api becomes user-specifiable so that the Vulkan bots can kick it up to 24, the first release supporting Vulkan. The defaults remain the same: 18 for 32-bit and 21 for 64-bit, the first release supporting 64-bit. To test this, I set ndk_api=24 and skia_use_vulkan=true in GN, then $ ninja -C out dm; and droid out/dm --config vk --src gm Seems to work! Bot scripts to follow. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336343002 Review-Url: https://codereview.chromium.org/2336343002
* GN: add sanitize argGravatar mtklein2016-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempt to take over all *SAN builds. MSAN has a lot of coordination required between gn/BUILD.gn and gn_flavor.py. I'd like to follow up to move more of this into gn/BUILD.gn, to make it easier to use locally. The compile steps should be much faster now. We no longer build CMake and Clang for every run, instead using the clang_linux CIPD package. This removes the need for all the third_party/externals/llvm/... dependencies. Similarly, since we're using the clang_linux package, we no longer depend on Chrome's Clang, and thus no longer need to sync chromium on these bots. Instead of packaging up MSAN libraries and llvm-symbolizer in the compile output, I have the test / perf bots also depend on the clang_linux package. These do not vary from build to build. No more need for the xsan.blacklist -include hack: Clang, GN, and Ninja all track changes to xsan.blacklist without our help. This has the incidental effect of upgrading the compiler used by *SAN bots from Clang 3.8 to Clang 3.9. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2289343002 Review-Url: https://codereview.chromium.org/2289343002
* GN: mac host and armv7 targetGravatar mtklein2016-08-26
| | | | | | | | | | | 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
* GN: AndroidGravatar mtklein2016-08-25
| | | | | | | | | | | | | | | | Once you have downloaded an android NDK, you can set the ndk GN arg to use it. E.g. my gn.args looks like: is_debug = false ndk = "/opt/android-ndk" This should be enough to get you going for an arm64 build. You ought to be able to tweak that to other architectures by changing target_cpu to "arm", "x86", "x86-64", etc. That won't quite work until I follow this up a bit, but the skeleton is there. This is enough to get me compiled, linked, and running to completion on my N5x. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275983004 Review-Url: https://codereview.chromium.org/2275983004
* GN: miscGravatar mtklein2016-08-24
| | | | | | | | | | | | | | | - Use options' template pattern for opts too. - Simplify opt's and options' configs... they should all be the same. - When building a static-library component in our GN environment (i.e. libskia.a), make it a complete static lib, fully containing its transitive deps. - It has not proved useful to override ar. TBR=jcgregorio@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2278673002 Review-Url: https://codereview.chromium.org/2278673002
* GN: make current_cpu workGravatar mtklein2016-08-16
| | | | | | | | | Then we can use it to remind ourselves that SSE and AVX are x86-only. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2247413003 Review-Url: https://codereview.chromium.org/2247413003
* GN: build sfntly, icu, harfbuzzGravatar halcanary2016-08-03
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2200833010 Review-Url: https://codereview.chromium.org/2200833010
* GN: components as static library instead of source setGravatar mtklein2016-07-29
| | | | | | | | | | | This also puts the .a in the top-level of the ouptut directory, just like we do for .so files. It's less required than for .sos, but it does make it easier to find the .a. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2197633002 Review-Url: https://codereview.chromium.org/2197633002
* Basic standalone GN configs.Gravatar mtklein2016-07-21
This sketches out what a world without Chrome's GN configs would look like. Instead of DEPSing in build/, we now host our own gypi_to_gn.py. The symlink from skia/ to . lets us run gclient hooks when the .gclient file is in the directory above skia/ or inside skia/. That means we don't need gn.py anymore. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167163002 Review-Url: https://codereview.chromium.org/2167163002