This CL creates a new build target with a customized set of GN
flags that enable the native components of SkQP to be built using
NDK APIs.
Bug: skia:12777
Change-Id: I8341eafa7fc794cfb759045b7c7238e69c29b0a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/491447
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Instead of both dm and nanobench both listing all of the
GM sources this CL consolidates the GMs into a single target that
both executables can depend on. This also paves the way for an
SkQP build target to depend on the same target.
Bug: skia:12777
Change-Id: I4bb7236612b04d42c01334f42e569c7f66893617
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/491042
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Python2 is going away, so update the script to run with python3.
Change-Id: I8c1aad12ecf8ae1bde67a1ad5486bf6feb1c04d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436098
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
This is a reland of 3d5483a547
Original change's description:
> Fix more new Clang warnings
>
> Change-Id: I82a13744669a6b5c23e23e6a719ec79878114dab
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/418697
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I6a81630c09d7aed906196b28adced0bf0a88e18d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/418938
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: b/167743764
Android's RenderEngine is now using Skia, but it doesn't need all the
pieces of Skia used by HWUI. Make a smaller version of Skia that
excludes many of those pieces, in particular where they bring in other
dependencies:
- codecs
- text
- pdf
- xml
Add a new cc_defaults to be shared by the new libskia_mini and libskia.
Manually insert fexceptions into libskia, since it is only needed by
SkRawCodec (not needed by mini).
Add a new SkUserConfig for mini, so it can exclude defines like
SK_CODEC_DECODES_PNG.
Continue to link in libpng (and libz, which it depends on) and build
SkPngEncoder, so that SKP captures can include compressed image files.
Switching to the mini-skia reduces the size of surfaceflinger from 7.4M
to 6.0M.
Change-Id: I6843ee43457b5a0feb36ae88a59d1d61770a6247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/402257
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
The gn_to_bp.py script generates projects with is_official_build=true.
This means that gn/skia:warnings is not applied. This means that a
number of warnings are not turned on, but it also means a number of
warnings are not turned off. Directly suppress several warnings which
were previously always suppressed.
Change-Id: Iefe48f663d47e39f36e21f2200417a33b2389508
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387836
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Android is currently the only platform that defines
SK_PRINT_CODEC_MESSAGES, which turns SkCodecPrintf into SkDebugf. This
macro is used to print messages from the SkCodec (or its underlying
library). At one point, Android requested better diagnostic messages,
but to my knowledge, they have never been used to help fix a bug. They
do, however, contribute to the overall high noise ratio of Android
logcat output. This is especially distracting when running the
AImageDecoder fuzzer (ag/10666507).
Change-Id: I245d555e9e9d79aeaa1023029f36c4911e5846a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/352513
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Don't skip deps from modules/. The initial exclusion was added long
ago, when Skottie deps were causing build issues.
Now it doesn't seem to be needed anymore, and it actually gets in the
way (see exceptions for various modules).
Change-Id: Ibb944fc5ab4754bf4006ebb3b75d9d8e5e0d8312
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327620
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Move the SVG rendering code to modules/svg, and componentize.
Also split into include/src/utils.
As external clients still reference the old header locations,
introduce temporary forwarding headers to facilitate the migration.
This reverts commit d6cf56fd34.
TBR=
Change-Id: Ibadd7c8dc0464ec0c27841530ade0c2098305d20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327344
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
Enable shaper and paragraph tests to run on Android builds.
Change-Id: Ib1685653ac4432a04998aed56dc76b9020253e75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293244
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Change-Id: I478b10c23aae0c363b0d7342f25663ca8fc0d0fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/274637
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
if a filename ends with `.py` and the file begins with '#!.*python.*',
make it executable.
Change-Id: I41de516ff37343d3b0979bde9fd61813aec7365c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254439
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
gn_to_bp: wrap defines in ifndef
create_apk.py assumes you are either run from the aosp tree, or you are
being run from make_universal_apk.py, which now defers to create_apk.py
for all functionality, even argument parsing.
tools/skqp/generate_gn_args moved some functionity into skqp_gn_args.py,
which is now used by create_apk.py
create_apk now accepts android sdk license for you.
create_apk and make_universal_apk.py now are better about cleaning up
after exceptions happen.
Old script make_apk.sh now just points at make_universal_apk.py
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP,Test-Debian9-Clang-NUC7i5BNK-CPU-Emulator-x86-devrel-All-Android_SKQP
Change-Id: I2dba20ef7017987cabb2bd49f070e2b1594785d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235678
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
This reverts commit 8413ff13fe.
Reason for revert: turns out that's not true. It's how we pick the right Vulkan headers.
Original change's description:
> SKIA_IMPLEMENTATION is only relevant in shared builds
>
> Change-Id: If4ce780a74d59e5ec5c9d950a560527d4de7e030
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210130
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=mtklein@google.com,halcanary@google.com,brianosman@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I35fc5458930254597279875125bb392af4b8e74c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211092
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: If4ce780a74d59e5ec5c9d950a560527d4de7e030
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210130
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: b/123085931
Bug: b/117921091
Based on ag/6614841
Don't use the default Windows FontMgr/FontHost. Android will
handle fonts.
Remove _HAS_EXCEPTIONS=0, which was added by gn/BUILD.gn
Change-Id: I93a72a550b2dbb9adc498638853f6e95c5d4e94f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/197041
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Bug: b/117921091
Bug: b/123085931
Test: mmma external/skia
Based on ag/6098473. Generate an SkUserConfig for Windows, and update
Android.bp with Windows in mind. Disable xps on Windows, as the
Android Windows build system does not provide FontSub.h
Change-Id: I755d225004ccbe273099889fea8dda01d23d03fc
Reviewed-on: https://skia-review.googlesource.com/c/195881
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Jerome Gaillard <jgaillard@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Bug: b/118742766
Update gn_to_bp to write an Android.bp file that will build a host-side
Skia library.
Switch some methods from SK_BUILD_FOR_ANDROID to
SK_BUILD_FOR_ANDROID_FRAMEWORK.
Prior reviews were done at ag/5482397.
gn_to_bp.py:
- Run GN twice - once for android and once for linux
- Disable GPU (depends on a to-be-written host side GL target) and HEIF
(which relies on Android hardware) on linux
- TODO: Turn on GPU on linux
- Split sources into everywhere, android-only, and linux-only.
It seems that Android.bp does not allow using the same cpp
file in multiple targets.
- note that we currently *only* divide out the sources. The cflags are
the same (except for a couple manual ones) and include
directories are mostly the same (again, except for manual ones).
Android has a "gpu" include directory, which I don't expect to
make a difference to the linux build, which isn't using GPU (yet).
- Use the same "custom empty" font manager on the host as on Android
- Write separate SkUserConfig files; one for android and one for linux.
This allows libskia to force libraries that use it to use the right
defines by setting export_include_dirs.
- Add extra checks to SkUserConfig.h to ensure we have only the
appropriate SK_BUILD_FOR macro defined
- Add host_supported: true for libskia
gn_to_bp_utils.py:
- Switch SkUserConfig.h from include guards to pragma once so it is
easier to append to the end. This matches how Android generally
includes headers.
BUILD.gn:
- Add skia_use_fixed_gamma_text so host build can use the same SK_GAMMA
defines as the device.
SkPreConfig.h:
- Stop making SK_BUILD_FOR_ANDROID_FRAMEWORK imply SK_BUILD_FOR_ANDROID.
The host build needs the former defined but not the latter.
SkRegion.cpp/.h:
- Make toString() SK_BUILD_FOR_ANDROID_FRAMEWORK so it can be called on
the host.
SkCamera.h/.cpp:
- Switch methods to SK_BUILD_FOR_ANDROID_FRAMEWORK so they can be called
on the host.
- Make getCameraLocation*() const. They are logically const, and this
allows removing a const_cast + TODO in hwui.
Change-Id: I771f825d06380e01c0488fd1c00df1d8a2454dc0
Reviewed-on: https://skia-review.googlesource.com/c/171231
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Module-related functionality is not required in dm/bench at this point.
Let's disable module deps flattening for now. As an immediate benefit
we can reduce the deps visibility for some internal skjson targets.
Bug: skia:8061
Change-Id: I0e09208964ca94b519121207ba1b6225059ef573
Reviewed-on: https://skia-review.googlesource.com/133822
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This reverts commit 98bddf930e.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Revert "Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API."
>
> This reverts commit 26c0e4c1f5.
>
> Reason for revert: breaks roll into fuchsia
>
> Original change's description:
> > Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API.
> >
> > Bug: skia:
> > Change-Id: I1e122e1b11ab308c2f83cb98c36c81511f4507d0
> > Reviewed-on: https://skia-review.googlesource.com/129980
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
>
>
>
> Change-Id: I6c74978f778987c422e6162e7dd85ea9c6baa0e4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/130182
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:
Change-Id: I422ffb3562da567f2e85c806286ad1a17c3862cd
Reviewed-on: https://skia-review.googlesource.com/130183
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This refactors the current gn_to_bp script and moves the common
components into a utils class. Both gn_to_bp scripts now also
accept an optional param (--gn <gn_path>) to make it easier to run
within the Android tree where we don't have the DEPS synced.
Change-Id: Idc4de7b3993e63e21a5b7137b1873d82a8e1843e
Reviewed-on: https://skia-review.googlesource.com/102184
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>