aboutsummaryrefslogtreecommitdiffhomepage
path: root/gn/BUILDCONFIG.gn
Commit message (Collapse)AuthorAge
* Add in float-divide-by-zero as an FYI sanitizerGravatar Kevin Lubick2018-03-20
| | | | | | | Bug: skia: Change-Id: Iacf9bcf10c69d3d6e2a1a2bdcce62bdd364582a1 Reviewed-on: https://skia-review.googlesource.com/115078 Reviewed-by: Mike Klein <mtklein@chromium.org>
* BUILD(win): find 'Build Tools for VS 2017', doc updateGravatar Hal Canary2018-02-14
| | | | | | | | | Docs-Preview: https://skia.org/user/build?cl=107282 Change-Id: I23b46051dd75e496b3fe87d7f1ea637a0541e950 Reviewed-on: https://skia-review.googlesource.com/107282 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Hal Canary <halcanary@google.com>
* Detect MSVC 2017 Community in GNGravatar Brian Osman2018-02-08
| | | | | | | Change-Id: If5dc14cbed7d0c6e5ca47dae3408bbe3cf213eab Reviewed-on: https://skia-review.googlesource.com/105609 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Filter Windows SDK and Compiler directoriesGravatar Brian Osman2017-12-11
| | | | | | | | | | | This avoids bugs when other directories (like the Driver SDK) show up in those folders. Bug: skia:7395 Change-Id: Iee316a7daf8d71223b999de736d63e1dc7fa31f7 Reviewed-on: https://skia-review.googlesource.com/83542 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Updated MSVC toolchain to 2017, and further refactored GNGravatar Brian Osman2017-12-08
| | | | | | | | | | | | | | | | | | | | | | 'windk' is no longer a thing. There are two separate variables to point at your compiler (win_vc), and SDK (win_sdk). 'msvc' is no longer a thing, either. By default, we look for 2017 and then 2015 (in the default locations). If neither is located, use an assert to let users know they should set win_vc. Then, detect if win_vc points at a 2017 or 2015 installation, and configure it automatically. Because the toolchain is now 2017, update the GN files to handle building x86 in that configuration. In fact, we only support x86 builds (with 2017 or 2015) using the toolchain assets. Keep a 2015 toolchain around as a new asset, so we can add bot coverage. Docs-Preview: https://skia.org/?cl=81841 Bug: skia: Change-Id: I8c68a6f949e54c0e798a219450bbb9406f8dc6ac Reviewed-on: https://skia-review.googlesource.com/81841 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Only look for WinSDK when building _for_ WindowsGravatar Mike Klein2017-12-06
| | | | | | | | | | | (Not when we're merely building _on_ Windows.) CQ_INCLUDE_TRYBOTS=skia.primary:Build-Win-Clang-arm64-Release-Android Change-Id: I7ab7663fcac6e3631ebe82f440927a077d476528 Reviewed-on: https://skia-review.googlesource.com/81483 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Reland "Always use the Win 10 SDK, and optionally detect/use the latest version"Gravatar Brian Osman2017-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of 6da1d32c16a0598e9b32a4e5b60f99aca871a399 Original change's description: > Always use the Win 10 SDK, and optionally detect/use the latest version > > For bot toolchain builds, we were already using the Win 10 SDK. Local > 2015 builds were using a strange hybrid of Win 10 and Win 8 SDKs. Now > we always use the Win 10 SDK exclusively. > > This adds two new GN arguments: win_sdk, which points at the top level > Windows 10 SDK directory, and win_sdk_version, which can be used to > pin to a specific version. (Otherwise we use a script to detect the > most recent version). > > Bug: skia: > Change-Id: I5aabb5eb9e7f483e3676b67b50356ddd0421cf7d > Reviewed-on: https://skia-review.googlesource.com/81304 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Brian Osman <brianosman@google.com> Bug: skia: Change-Id: Ide0d6bd3413c4fe7a8bada7d3d32bdba9709d11b Reviewed-on: https://skia-review.googlesource.com/81501 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Revert "Always use the Win 10 SDK, and optionally detect/use the latest version"Gravatar Ravi Mistry2017-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6da1d32c16a0598e9b32a4e5b60f99aca871a399. Reason for revert: Caused Build-Win-Clang-arm64-Release-Android to fail. Eg: https://chromium-swarm.appspot.com/task?id=3a467f1ddd15fb10&refresh=10 Original change's description: > Always use the Win 10 SDK, and optionally detect/use the latest version > > For bot toolchain builds, we were already using the Win 10 SDK. Local > 2015 builds were using a strange hybrid of Win 10 and Win 8 SDKs. Now > we always use the Win 10 SDK exclusively. > > This adds two new GN arguments: win_sdk, which points at the top level > Windows 10 SDK directory, and win_sdk_version, which can be used to > pin to a specific version. (Otherwise we use a script to detect the > most recent version). > > Bug: skia: > Change-Id: I5aabb5eb9e7f483e3676b67b50356ddd0421cf7d > Reviewed-on: https://skia-review.googlesource.com/81304 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Brian Osman <brianosman@google.com> TBR=mtklein@chromium.org,borenet@google.com,bungeman@google.com,brianosman@google.com Change-Id: Id044114fc685d570741e3f5ed003c4be2ffa84a3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/81500 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
* Always use the Win 10 SDK, and optionally detect/use the latest versionGravatar Brian Osman2017-12-06
| | | | | | | | | | | | | | | | | For bot toolchain builds, we were already using the Win 10 SDK. Local 2015 builds were using a strange hybrid of Win 10 and Win 8 SDKs. Now we always use the Win 10 SDK exclusively. This adds two new GN arguments: win_sdk, which points at the top level Windows 10 SDK directory, and win_sdk_version, which can be used to pin to a specific version. (Otherwise we use a script to detect the most recent version). Bug: skia: Change-Id: I5aabb5eb9e7f483e3676b67b50356ddd0421cf7d Reviewed-on: https://skia-review.googlesource.com/81304 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Add win_toolchain_version to support MSVC 2017 UpdatesGravatar Brian Osman2017-12-06
| | | | | | | | | | | | | | | | | | To make this simpler in the future, add a python script that finds the most recent 2017 toolchain, and use that. If/when we update the bot toolchain, this will be even more helpful, because the Chromium toolchain isn't perfectly in sync with the general update channel, so people are likely to have a newer/older release locally. Note that explicitly setting win_toolchain_version in your GN args suppresses the python script, so you can choose to build with whatever version you need. Bug: skia: Change-Id: Iaf6d0dd9be2623472118c3ad27b20023a205d67c Reviewed-on: https://skia-review.googlesource.com/81162 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* remove mips support and botsGravatar Mike Klein2017-12-05
| | | | | | | | | | | The NDK has deprecated mips and mips64: https://developer.android.com/ndk/guides/abis.html Might as well clean this up now while I remember. Change-Id: Ie4b2334c75208082067cc16fe355d0349c7e0904 Reviewed-on: https://skia-review.googlesource.com/80560 Reviewed-by: Derek Sollenberger <djsollen@google.com>
* drop 32-bit Android NDK builds down to API 16Gravatar Mike Klein2017-11-28
| | | | | | | Change-Id: I40ded57601da605a1393ce56589455909f66ad00 Reviewed-on: https://skia-review.googlesource.com/77020 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* [WASM] Add POC compile bot for WebAssemblyGravatar Kevin Lubick2017-09-21
| | | | | | | | | | | | | | | | | | | | Fix core.gni to use not use Assembler for none cpu. Right now, there are no outputs because we aren't compiling dm or nanobench. However, this still compiles the skia library and creates two executables, so it's a good canary for a real WASM build. Additional note: the two executables in question don't draw anything to the screen via GL, which is still not possible with Skia+WASM. Bug: skia: Change-Id: I0d767467e94e40d01070e34223dd90e96f1c96f2 Reviewed-on: https://skia-review.googlesource.com/49540 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Eric Boren <borenet@google.com>
* clang on windows supportGravatar Mike Klein2017-07-31
| | | | | | | | | | | | | | | | | 1) Run python bin/fetch-clang-win 2) Set clang_win = "../bin/clang_win" 3) ??? 4) Profit Most changes here are to pass the right -mfoo flags to Clang to enable advanced instruction sets, or fixed warning-as-errors. BUG=skia:2679 Change-Id: Ieed145d35c209131c7c16fdd3ee11a3de4a1a921 Reviewed-on: https://skia-review.googlesource.com/28740 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Re-re-land sksl fragment processor supportGravatar Ethan Nicholas2017-06-29
| | | | | | | | | | This reverts commit 5ce397205528f82084fc650c2ce27d246c01da33. Bug: skia: Change-Id: I88260c90004610a1cf8ad1a87c2b4b222525bbb6 Reviewed-on: https://skia-review.googlesource.com/21108 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "Re-land sksl fragment processor support"Gravatar Mike Klein2017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c070939fd1a954b7a492bc30f0cf64a664b90181. Reason for revert: This has some knock-on effects in the generation of Android.bp from our GN files. See gn/gn_to_bp.py? We're seeing things like "tmp/tmpsBVycx/gen/" end up in the include search path in Android.bp, which obviously don't exist there... Original change's description: > Re-land sksl fragment processor support > > This reverts commit ed50200682e0de72c3abecaa4d5324ebcd1ed9f9. > > Bug: skia: > Change-Id: I9caa7454b391450620d6989dc472abb3cf7a2cab > Reviewed-on: https://skia-review.googlesource.com/20965 > Reviewed-by: Ben Wagner <benjaminwagner@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=benjaminwagner@google.com,ethannicholas@google.com Change-Id: I502486b5405923b322429219f4cc396a45a14cea No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/20990 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Re-land sksl fragment processor supportGravatar Ethan Nicholas2017-06-27
| | | | | | | | | | This reverts commit ed50200682e0de72c3abecaa4d5324ebcd1ed9f9. Bug: skia: Change-Id: I9caa7454b391450620d6989dc472abb3cf7a2cab Reviewed-on: https://skia-review.googlesource.com/20965 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "sksl fragment processor support"Gravatar Ethan Nicholas2017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ccf59917d3fe7aaf59de714acfbd0596503f324f. Reason for revert: breaking iOS bots Original change's description: > sksl fragment processor support > > Bug: skia: > Change-Id: Ia3b0305c2b0c78074303831f628fb01852b90d34 > Reviewed-on: https://skia-review.googlesource.com/17843 > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> > Reviewed-by: Ben Wagner <benjaminwagner@google.com> > Reviewed-by: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,benjaminwagner@google.com,ethannicholas@google.com Change-Id: I0a33060c7c42c7b44c5c13d443ac42958291c2f1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/20962 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* sksl fragment processor supportGravatar Ethan Nicholas2017-06-27
| | | | | | | | | Bug: skia: Change-Id: Ia3b0305c2b0c78074303831f628fb01852b90d34 Reviewed-on: https://skia-review.googlesource.com/17843 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ben Wagner <benjaminwagner@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Added support for building for tvOSGravatar Matthew Leibowitz2017-03-14
| | | | | | | | | | | | | | | This change is just to add support for building for tvOS. It is exactly the same as iOS, just using a different SDK. I had to change the two lines for libjpeg-turbo so that it will run for both tvOS and iOS. BUG=skia: Change-Id: I6ae5fc4257df74c0f321e5d2d71584f6a52ec3a6 Reviewed-on: https://skia-review.googlesource.com/9660 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Support Android NDK r14.Gravatar Mike Klein2017-03-06
| | | | | | | | | | | | | | | | | | | | simpleperf has moved a little since r13. To support both, remove its copy step. Explicitly disable the Clang integrated assembler on MIPS. It has only understood the 'usw' (unaligned store) pseudoinstruction for about 4 months, and that won't be part of a Clang release until the upcoming Clang 4.0. Must be that -no-integrated-as was the default in r13. All six platforms build on my laptop with r14 now. Will follow up with the CL that moves the bots to r14. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-arm-Debug-Android,Build-Ubuntu-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-mips64el-Debug-Android,Build-Ubuntu-Clang-mipsel-Debug-Android,Build-Ubuntu-Clang-x64-Debug-Android,Build-Ubuntu-Clang-x86-Debug-Android,Build-Win-Clang-arm64-Release-Android Change-Id: Ic00981d534613ebab8f6e7646b967493728b91d9 Reviewed-on: https://skia-review.googlesource.com/9237 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Derek Sollenberger <djsollen@google.com>
* Put is_skia_standalone back a bit.Gravatar Mike Klein2017-03-03
| | | | | | | | | | | | | | | We do still need to know when we're in our GN environment or in another, like Fuchsia's or Flutter's. The places where we replaced is_skia_standalone with defined(ndk) still look right to me as defined(ndk). CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-GCC-x86_64-Release-Flutter_Android Change-Id: I5455014a8f4a350ac3a939097d042fd8cb4c32fa Reviewed-on: https://skia-review.googlesource.com/9193 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Strengthen is_official_build, update docs.Gravatar Mike Klein2017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes is_official_build turn off all development targets and features in Skia, including building third-party dependencies from source. This will intentionally break some external users, who will find themselves no longer able to find third-party headers or link against third-party libraries. These users have been building with our testing third-party dependencies unknowingly. They'll need to either explicitly turn back on building each dependency from source (skia_use_system_foo=false) or disable that dependency entirely (skia_use_foo=false). is_skia_standalone is now basically !is_official_build, so I've propagated that through, removing is_skia_standalone. In a few places we were using it as a stand-in for defined(ndk), so I've just written defined(ndk) there. Duh. gn_to_bp: is_offical_build's new strength also makes gn_to_bp.py simpler to write. In spirit, Android builds are official Skia builds that also build DM and nanobench. It seems that SkJumper (src/jumper/*) is (unintentionally) enabled on Android. Switching to an is_official_build would have disabled that. But as that accidental launch seems to have gone fine, I've kept it explicitly enabled. In the end, no changes to Android.bp or its SkUserConfig.h. The -Mini builder no longer needs to explicitly disable tools. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Mini Change-Id: Id06e53268a5caf55c6046ada354a0863c3031c73 Reviewed-on: https://skia-review.googlesource.com/9190 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Move declaration of is_fuzzer to where it is usedGravatar Ravi Mistry2017-02-21
| | | | | | | | | BUG=skia:6260 Change-Id: Iaca4fb1afb4d182f4d2ae64d939729363a226ce6 Reviewed-on: https://skia-review.googlesource.com/8772 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
* Write SkRegion fuzzerGravatar Kevin Lubick2017-02-20
| | | | | | | | | BUG=688987 Change-Id: I2ad1c53ea01185a77b662d2d86b0c6d36fcb63c7 Reviewed-on: https://skia-review.googlesource.com/8499 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* GN: add 32-bit and Release iOS builders.Gravatar Mike Klein2017-01-23
| | | | | | | | | | | | And roll recipes to the point where they pass target_cpu to GN, adding x86_64 as an alias for x64. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-GN_iOS,Build-Mac-Clang-arm64-Release-GN_iOS,Build-Mac-Clang-arm-Debug-GN_iOS,Build-Mac-Clang-arm-Release-GN_iOS Change-Id: I1933d5803ec7f59f78576c5a7b16489362905a97 Reviewed-on: https://skia-review.googlesource.com/7403 Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "Try /MTd on Debug Windows builds."Gravatar Mike Klein2017-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 58ce2bc51a318e53e3e6f1ef297c5adc775b0fec. Reason for revert: warnings / errors when building ANGLE. Original change's description: > Try /MTd on Debug Windows builds. > > The people clamor for it! I doubt we'll care in our testing. > > BUG=skia:5928 > > Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae > Reviewed-on: https://skia-review.googlesource.com/7364 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> > TBR=mtklein@chromium.org,bungeman@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:5928 Change-Id: Id6ab3de7ebb5394749233429bada2f5244ff2978 Reviewed-on: https://skia-review.googlesource.com/7372 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Try /MTd on Debug Windows builds.Gravatar Mike Klein2017-01-21
| | | | | | | | | | | | The people clamor for it! I doubt we'll care in our testing. BUG=skia:5928 Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae Reviewed-on: https://skia-review.googlesource.com/7364 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Add tools to support gdb and simpleperf for android executables.Gravatar Derek Sollenberger2017-01-05
| | | | | | | Change-Id: I6e7f41df094ae037538ebd61e40385d7e2e9eb26 Reviewed-on: https://skia-review.googlesource.com/6615 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* switch to libstdc++ for standalone Android builds.Gravatar Mike Klein2016-12-14
| | | | | | | | | This makes it possible to target NDK API 18 (K) again. Change-Id: Id3d1f19b2904792b4001d2ea0942cc1ab6cf732e Reviewed-on: https://skia-review.googlesource.com/6081 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* GN: add public headers warnings check.Gravatar Mike Klein2016-11-16
| | | | | | | | | | | | We already generate skia.h to include all public headers for Fiddle. This just includes it with -Wunused-parameter turned on as an error. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4901 Change-Id: Ia55a901c09a3c9c9d6d35a43259431dba3532ed9 Reviewed-on: https://skia-review.googlesource.com/4901 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* GN: iOS basicsGravatar Mike Klein2016-11-03
| | | | | | | | | | | | | | | 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>
* 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