Commit Graph

25 Commits

Author SHA1 Message Date
Derek Sollenberger
8b2513a986 Build the NDK compliant shared library to be used by JNI in SkQP.
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>
2022-01-10 17:11:48 +00:00
Derek Sollenberger
5d7ef77a35 Reduce duplication of sources for tests in Android.bp
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>
2022-01-05 17:40:17 +00:00
Leon Scroggins III
86b2c952ae Update gn_to_bp_utils to support python3
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>
2021-08-03 17:52:43 +00:00
Brian Osman
759802fdd1 Reland "Fix more new Clang warnings"
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>
2021-06-16 17:40:07 +00:00
Leon Scroggins III
6c41bf55b7 Create mini-skia for RenderEngine
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>
2021-04-29 21:04:48 +00:00
Ben Wagner
72513e7ff6 Correct Android.bp warnings.
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>
2021-03-22 18:09:06 +00:00
Leon Scroggins
ce73961a7d Silence SkCodecPrintf on Android
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>
2021-01-11 19:48:04 +00:00
Florin Malita
da34798bee Cleanup gn_to_bp_utils
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>
2020-10-16 16:01:32 +00:00
Florin Malita
b3418103e9 Reland "[svg] Relocate out of experimental"
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>
2020-10-16 02:32:41 +00:00
Eric Boren
5ba6534884 Change some instances of whitelist/blacklist
Bug: chromium:1101491
Bug: b/161896447

Change-Id: I7e3bf4ed63b2170fb08fe1ec8e7d934e7fcdca7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306644
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2020-07-30 10:56:03 +00:00
Mike Reed
579c295b6b Android test to depend on icu and harfbuzz.
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>
2020-06-02 21:26:25 +00:00
Martin Vejdarski
beaaf4700f fix print functions for python3 gn scripts
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>
2020-03-06 17:42:39 +00:00
Hal Canary
389c8e9d2d [minor] mark scripts as executable
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>
2019-11-21 17:06:27 +00:00
Hal Canary
82e3afa99d SkQP: split make_apk script into create_apk and make_apk
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>
2019-08-20 15:08:03 +00:00
Mike Klein
f5f4e81e33 Revert "SKIA_IMPLEMENTATION is only relevant in shared builds"
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>
2019-04-29 16:20:05 +00:00
Mike Klein
8413ff13fe 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>
2019-04-25 17:03:09 +00:00
Leon Scroggins III
631dbc82f0 Fix Android host-side Windows build
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>
2019-03-05 18:57:07 +00:00
Leon Scroggins III
ee0e5d0cd9 Enable Skia for Windows
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>
2019-02-28 16:11:33 +00:00
Leon Scroggins III
c41a5f58b2 Generate Android Framework host-side Skia (linux)
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>
2018-11-19 17:51:32 +00:00
Derek Sollenberger
1821a5becd Supress warnings about implicit fallthrough in Android.
Change-Id: I3e55c2641b53f284f16658370a18d165b678cc36
Reviewed-on: https://skia-review.googlesource.com/153667
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Chih-hung Hsieh <chh@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2018-09-11 19:49:29 +00:00
Florin Malita
46fbf8c97a Disable module deps in Android Framework builds
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>
2018-06-11 15:00:31 +00:00
Greg Daniel
18dbfd05e4 Reland "Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API."
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>
2018-05-30 13:27:38 +00:00
Mike Reed
6c73d11911 remove SK_SUPPORT_LEGACY_BLURMASKFILTER from android
Bug: skia:
Change-Id: I8c29fe8ae7907a8309d90ef4474de8c4c75fc760
Reviewed-on: https://skia-review.googlesource.com/114478
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-03-14 21:43:16 +00:00
Mike Reed
1be1f8d097 hide SkBlurMaskFilter and SkBlurQuality
SK_SUPPORT_LEGACY_BLURMASKFILTER

Bug: skia:
Change-Id: Ic3e27e08e6e3cd2ffc1cd13b044e197bebc96236
Reviewed-on: https://skia-review.googlesource.com/113940
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-03-14 17:27:36 +00:00
Derek Sollenberger
5d3f7704bf Add gn_to_bp script for SkQP.
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>
2018-02-02 15:12:20 +00:00