Commit Graph

108 Commits

Author SHA1 Message Date
Brian Osman
ce75036b3e SkSL: Remove ByteCode interpreter, generator, etc.
Change-Id: Ib150e6d6d3de34a85ce8051eea843ab3b2d7ab75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/356921
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2021-01-22 14:38:41 +00:00
Victor Chang
6bd4d1cece Android: Build skia on top of libicu.so
It proves that skia does not depend on private APIs
in ICU because libicu.so is now available in NDK.

Also, it helps deprecate libandroidicu.so and allow
i18n module and UI rendering to be mainline.

Bug: b/174051744
Test: m droid

Cherry-pick of aosp/1508716. Modifies the Android.bp
generator instead of Android.bp directly.

Change-Id: Ibb608d80ce2b664d1273affb1992b1df923f7040
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337723
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2020-12-17 16:56:45 +00:00
Martin Stjernholm
b4382ced88 Remove windows:enabled from skia_deps
skia_deps are inherited by libhwui, so this previously enabled building
libhwui on Windows. But this would require a libnativehelper variant on
Windows. Disable the libhwui Windows build until then.

Reenable windows builds for libskia and its tools (via skia_tool_deps).

Add a comment describing the proper way to update Android.bp.

Test: m
Test: mmm external/skia
Bug: b/172649321

Author: mast@google.com

Change-Id: I9b2dba455f25e4582bb359d660fbd78fe67da976
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334048
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Jerome Gaillard <jgaillard@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Martin Stjernholm <mast@google.com>
2020-11-12 16:26:48 +00:00
Jerome Gaillard
e80251af3d Use shared version of libcutils for host Android builds
libcutils is now available as a shared library for host builds as well as Android builds.

Change-Id: Ief5625522933e9c261843436622b391e1eb7abe0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329976
Reviewed-by: Leon Scroggins <scroggo@google.com>
Auto-Submit: Jerome Gaillard <jgaillard@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2020-10-27 18:07:00 +00:00
Julia Lavrova
1798f4f35c Reland "Reland "ICU: SkShaper (bidi iterator only)""
This reverts commit 03cde5f999.

Reason for revert: Fixing the build

Original change's description:
> Revert "Reland "ICU: SkShaper (bidi iterator only)""
>
> This reverts commit 7bc5542a9e.
>
> Reason for revert: breaking Android roll
>
> Original change's description:
> > Reland "ICU: SkShaper (bidi iterator only)"
> >
> > This reverts commit 73f003acfd.
> >
> > Reason for revert: Fixed the build
> >
> > Original change's description:
> > > Revert "ICU: SkShaper (bidi iterator only)"
> > >
> > > This reverts commit 64e3d040e9.
> > >
> > > Reason for revert: Breaking google3
> > >
> > > Original change's description:
> > > > ICU: SkShaper (bidi iterator only)
> > > >
> > > > Change-Id: I845cc0a962790ce37600f943473f21f619ee029b
> > > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/308508
> > > > Reviewed-by: Ben Wagner <bungeman@google.com>
> > > > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> > >
> > > TBR=djsollen@google.com,bungeman@google.com,reed@google.com,jlavrova@google.com
> > >
> > > Change-Id: Ib081d97f61e57f74bb9414b3973cca640f3b3929
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309442
> > > Reviewed-by: Julia Lavrova <jlavrova@google.com>
> > > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> >
> > TBR=djsollen@google.com,bungeman@google.com,reed@google.com,jlavrova@google.com
> >
> > Change-Id: I2d9c79deaaac97d3e0eb9b39ec9d53815fdb1f59
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/310757
> > Reviewed-by: Ben Wagner <bungeman@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
>
> TBR=bungeman@google.com,jlavrova@google.com
>
> Change-Id: I89e80462edf8e014d7ea273885feeca17748a63a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313378
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Derek Sollenberger <djsollen@google.com>

TBR=djsollen@google.com,bungeman@google.com,jlavrova@google.com

Change-Id: Idce514c64309e7463fa23425d10f1b13dd9c8d18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313407
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-08-26 17:46:33 +00:00
Mike Klein
853d4ed2ff Revert "remove sksl interpreter guards"
This reverts commit 7f1117e886.

Reason for revert: Seems like Clang gets stuck allocating registers on ARM,

[2477/38027] CXX obj/skia/skia/SkSLByteCode.o
FAILED: obj/skia/skia/SkSLByteCode.o
/b/s/w/ir/cache/goma/client/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF...(too long)
fatal error: error in backend: Error while trying to spill LR from class GPR: Cannot scavenge register without an emergency spill slot!
PLEASE submit a bug report to https://crbug.com and run tools/clang/scripts/process_crashreports.py (only works inside Google) which will upload a report and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/skia/ski...(too long)


Original change's description:
> remove sksl interpreter guards
> 
> This is only used by particles, benchmarks, and tests,
> and should be swept away by dead code elimination otherwise.
> 
> Change-Id: I10462d6ae0a08dd8219fc49325160ec6790632af
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311759
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,brianosman@google.com

Change-Id: I1b6370d39285210267425f090235a4d80aebe4fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/312034
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-08-20 00:41:15 +00:00
Mike Klein
7f1117e886 remove sksl interpreter guards
This is only used by particles, benchmarks, and tests,
and should be swept away by dead code elimination otherwise.

Change-Id: I10462d6ae0a08dd8219fc49325160ec6790632af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311759
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-08-19 14:44:09 +00:00
Ben Wagner
75626e4b1a Regularize selection of fontmgr.
Change-Id: Id7c51504450c1c7c9421eba3838bd6bc3440ca4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/295437
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-06-11 12:28:03 +00:00
Mike Klein
ad56c4c143 add structure for normal SKX opts
My experience porting the old opts over to the current SKX opts setup
was so bad that I don't want to try any more, and think it's probably
safer to port the SKX code to the old setup.

Need to hook up dependents (Chromium and Google3 I think) before we can
move the actual SXK opts code over.

Change-Id: Ibb8bc4a083cb104cd39f27cbfbc16e9eedd9bd46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/294495
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-05 13:48:39 +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
Leon Scroggins III
63cfb3638c Reland "Move SkFrontBufferedStream into Android-only dir"
This reverts commit b25f30348b.

Bug: skia:10154

Original message:
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
>
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.

Deliberately do not include client_utils in Google3, since the whole
point is to only include where necessary.

Change-Id: I48938c56aabb98e1ed820240d43ffcd0fdce7956
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285104
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-24 17:36:30 +00:00
Joe Gregorio
b25f30348b Revert "Move SkFrontBufferedStream into Android-only dir"
This reverts commit 513720f28e.

Reason for revert: Breaking the google3 roll:
   https://sponge.corp.google.com/invocation?tab=Build+Log&id=5f96970b-8171-4c2f-abf3-006e11b8fff9

Original change's description:
> Move SkFrontBufferedStream into Android-only dir
> 
> Bug: skia:10154
> 
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
> 
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.
> 
> Change-Id: Ie0f425051ea370aab7861d61150a3d6007214a93
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284721
> Commit-Queue: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Derek Sollenberger <djsollen@google.com>

TBR=djsollen@google.com,scroggo@google.com,reed@google.com

Change-Id: Iaeedaed184cc35f507d5441631ae709e1c5cb1ac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10154
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285100
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2020-04-23 18:23:30 +00:00
Leon Scroggins III
513720f28e Move SkFrontBufferedStream into Android-only dir
Bug: skia:10154

Add client_utils for code that is specifically for a single client.
Move SkFrontBufferedStream into its android/ subdir. Rename the class
to android::skia::FrontBufferedStream. Temporarily leave in
SkFrontBufferedStream until Android updates to the new API.

Add a new optional target for client_utils/android. It is built in dev
builds for testing, and when building for the Android framework.

Change-Id: Ie0f425051ea370aab7861d61150a3d6007214a93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/284721
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2020-04-23 17:02:18 +00:00
Derek Sollenberger
320c32bfa3 Remove mips workarounds for Android.
see
https://android-review.googlesource.com/c/platform/external/skia/+/1252938
for additional context.

Change-Id: I345b5020f81b2193ff92e2704d2050fb5c19a766
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276917
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Derek Sollenberger <djsollen@google.com>
2020-03-13 18:46:26 +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
Leon Scroggins III
a09d2328e8 Enable Windows host build for Skia
The issue with compiler warnings was fixed in
https://skia-review.googlesource.com/c/skia/+/270096.

Bug: b/149286037
Test: lunch sdk && m libskia

Uploaded previously as ag/10306975, but that will get overwritten by our
automatic merger. Update the source so the change will stick.

Change-Id: I5dced8a51cec6a16aa9f93f36b90d3194d00ced4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/271059
Auto-Submit: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Jerome Gaillard <jgaillard@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2020-02-18 15:15:15 +00:00
Mike Klein
81d35a72ae rm SkPreConfig.h and SkPostConfig.h
We treat them as part of SkTypes.h, so let's just merge them in?

Change-Id: Icd6db3913a679ceb9de09027d17eb9361754b016
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268769
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-02-06 19:16:43 +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
2dad99092c Replace third_party/gif: Preflight changes
Something is breaking client code in unexpected ways.  Let's try this
piecemeal.

  - skia_libgifcodec_path gn var. Default is
    third_party/externals/libgifcodec.  Anfroid framework uses
    third_party/libgifcodec.

  - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
    disabling both codecs.

  - GN template("optional"): add public_include_dirs, similar to
    public_defines.

  - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.

  - SkCodec.cpp: use SK_USE_LIBGIFCODEC

Original CL:  https://review.skia.org/254582

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: I70561f5f945656065e4b318d5fff505961fb0b6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255578
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-21 15:19:41 +00:00
Hal Canary
f7cb902904 Revert "Replace third_party/gif with new DEPS entry."
This reverts commit 6d29bfbfcd.

Reason for revert: try to fix g3 roll.

Original change's description:
> Replace third_party/gif with new DEPS entry.
>
>   - skia_libgifcodec_path gn var. Default is
>     third_party/externals/libgifcodec.  Anfroid framework uses
>     third_party/libgifcodec.
>
>   - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
>     disabling both codecs.
>
>   - BUILD.gn `gif` optional source_set: use new skia_libgifcodec_path
>     code, not third_party/gif code.
>
>   - GN template("optional"): add public_include_dirs, similar to
>     public_defines.
>
>   - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.
>
>   - SkCodec.cpp: use third_party version of SkGifCodec.h.
>
>   - src/codec/SkGifCodec.*, third_party/gif/*: remove files.
>
> Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
> Bug: skia:9654
> Change-Id: Ie22d2bb7e52322fd3eedb97015f3aec2ce5e3402
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254582
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>

TBR=djsollen@google.com,halcanary@google.com,rmistry@google.com,scroggo@google.com

Change-Id: I427e1a073c0574e1502b6196873ac3001a22250b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9654
Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255534
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2019-11-20 20:54:44 +00:00
Hal Canary
6d29bfbfcd Replace third_party/gif with new DEPS entry.
- skia_libgifcodec_path gn var. Default is
    third_party/externals/libgifcodec.  Anfroid framework uses
    third_party/libgifcodec.

  - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
    disabling both codecs.

  - BUILD.gn `gif` optional source_set: use new skia_libgifcodec_path
    code, not third_party/gif code.

  - GN template("optional"): add public_include_dirs, similar to
    public_defines.

  - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.

  - SkCodec.cpp: use third_party version of SkGifCodec.h.

  - src/codec/SkGifCodec.*, third_party/gif/*: remove files.

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: Ie22d2bb7e52322fd3eedb97015f3aec2ce5e3402
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254582
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-20 19:07:00 +00:00
Nathaniel Nifong
60c37e7ba1 Enable SKSL in skia_nanobench, enforce resources being present.
Don't include SKSL interpreter bench when interpreter is disabled.

Bug: b/141263986 b/141871494
Change-Id: Ie9a5f3f28b28af077f7279da0d20bfafb41bd6cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247054
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Pirama Arumuga Nainar <pirama@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2019-10-16 16:34:36 +00:00
Pirama Arumuga Nainar
5be3c13263 [Android] Use wildcard for data associated with skia_nanobench
'resources/**/*' includes the entire resources directory, while
'resources/*' does not include the recursive contents.

Bug: skia: none
Change-Id: Iae5a41af0d62f3eb00098f83721f7f01f0b0ab5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245317
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2019-10-01 19:07:12 +00:00
Hal Canary
f72728e3f1 documentation/build, BUILDCONFIG: Visual Studio Build Tools 2019
deprecate 2015

Docs-Preview: https://skia.org/?cl=226502
Change-Id: I32cd75937ebdc774138499c4cd79c1eda29bd0f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226502
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-07-12 14:17:16 +00:00
Nathaniel Nifong
0c4fbf1bbb Include sharing proc in skia static library when building for android.
So it can be used for SKP serialization.

Bug: 9203
Change-Id: I094d5222f220bb79c7f61fd5ebebf48e23e97b0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223705
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2019-06-25 20:37:53 +00:00
Brian Osman
35ea04d613 Remove skcms shim header
Change-Id: I094fd08c25593a7957c3e91b330ec914a7cf86da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211585
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-05-01 20:25:14 +00:00
Mike Klein
c0bd9f9fe5 rewrite includes to not need so much -Ifoo
Current strategy: everything from the top

Things to look at first are the manual changes:

   - added tools/rewrite_includes.py
   - removed -Idirectives from BUILD.gn
   - various compile.sh simplifications
   - tweak tools/embed_resources.py
   - update gn/find_headers.py to write paths from the top
   - update gn/gn_to_bp.py SkUserConfig.h layout
     so that #include "include/config/SkUserConfig.h" always
     gets the header we want.

No-Presubmit: true
Change-Id: I73a4b181654e0e38d229bc456c0d0854bae3363e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209706
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-24 16:27:11 +00:00
Yi Kong
003334c6a7 [Android] Do not build for Windows
clang-r353983 emits error when building Skia for Windows. Do not build
it for now until the compiler issue is addressed.

Bug: 126457671
Change-Id: I2942aadb10f5956d72f064870653694a7e1e847c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201836
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-03-18 14:29:20 +00:00
Stan Iliev
12b8916866 Export libvulkan headers for android libraries depending on skia
Test: Ran gn_to_bp.py and built Android
Bug: b/123953909
Change-Id: Icfb7f5d6ff55f4837d1d227cb2956530d492c745
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/199920
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2019-03-11 19:31:35 +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
Mike Klein
764f25a3c5 remove a couple more jsoncpp deps
Presumably if we don't need these in Skia,
we don't need them in Android?

Change-Id: Iff18066c1c2a52c999beabbd9239d4bc96d0ba6d
Reviewed-on: https://skia-review.googlesource.com/c/190438
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-02-08 15:17:26 +00:00
Derek Sollenberger
3de7684fb6 Use ICU in libandroidicu
libicuuc and libicui18n are moved into APEX, but
they have no stable ABI due to the version suffix.

Use libandroidicu which provides stable symbol.
See http://go/apex-stable-icu4c-interface for the design.

Bug: b/117094880
Change-Id: Id27cf49b9caad84080a3e09e39243573d921b17f
Reviewed-on: https://skia-review.googlesource.com/c/182202
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-01-09 14:10:25 +00:00
Leon Scroggins III
a55445eab6 Simplify gn_args in gn_to_bp.py
Bug: b/118742766

This does not change Android.bp or (any) SkUserConfig.h. But it
consolidates the arguments for the different platforms into one method,
which makes it clear what they share and where they differ. It also no
longer sets skia_enable_tools for the non-Android build, where it
doesn't need to be set to true (this makes no difference in the final
output nor the time GN takes to generate JSON).

Change-Id: I22af345aaf3878227d4f42afc2861e49ec2691ec
Reviewed-on: https://skia-review.googlesource.com/c/173238
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-12-04 16:04:02 +00:00
Leon Scroggins III
85e22fc361 Build Android Framework host library on Mac
Based on ag/5616352, patch set 5.

Bug: b/118742766
Test: lunch sdk && mmma external/skia on Mac

Similar to the linux build, use a new set of GN arguments to create a
json object to fill in the updated template.

Add the new include/config/mac folder for the newly generated mac-
specific SkUserConfig.h.

Include stdarg.h in SkTraceEventCommon, which is necessary for the mac
build.

Add a new GN arg (skia_use_fonthost_mac) to allow framework build to
manually not build SkFontHost_mac.cpp, and use the same font host
as the other builds.

Change-Id: I654ba496306a3f3591c3937ad5524cd45e49dd65
Reviewed-on: https://skia-review.googlesource.com/c/173183
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-11-28 19:29:51 +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
Leon Scroggins III
be85c19a74 Build custom empty SkFontMgr for Android Framework
Bug: b/118742766

The Android Framework does not need SkFontMgr_android*. Switch it to
using SkFontMgr_custom*. This will also be the SkFontMgr to use when
we're building Skia as a host-side library.

BUILD.gn:
- Rename fontmgr_fuchsia to fontmgr_custom_empty so it can be selected
  specifically by the Android Framework build. Default condition is
  unchanged, so fuchsia will still build it.
- Similarly, create a new argument for fontmgr_android and
  fontmgr_custom, so they can be omitted by the Android Framework build.
  Again, default condition is unchanged, so no other builds should be
  affected.

gn_to_bp.py:
- Set the new arguments to build the files we want.

Change-Id: Ic85db8acd64f625b00fe2c9bc451ae8814d97a59
Reviewed-on: https://skia-review.googlesource.com/c/170725
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-11-13 20:17:10 +00:00
Pirama Arumuga Nainar
a4d700d74b Add back -Wover-align
Android's Clang now correctly handles the default alignment for
new/malloc.  The flag is still set in BUILD.gn since outside of an
Android tree, we don't have control over the Clang used to build Skia.

Bug: skia:
Change-Id: Ifc71c033c18232a3b0d2faed6f1ecb7eee8b364e
Reviewed-on: https://skia-review.googlesource.com/c/163647
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-10-23 17:26:08 +00:00
Hal Canary
d18d7bd294 SK_SUPPORT_LEGACY_DOCUMENT_FACTORY: clean up part 2/2
Change-Id: Ibab2f420c779e0307f4df214f229609b377acf29
Reviewed-on: https://skia-review.googlesource.com/c/156369
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2018-10-04 20:00:24 +00:00
Hal Canary
23564b9249 SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h
Change-Id: I48e73b27e52511292c2c0bd51ef0168766f53a80
Reviewed-on: https://skia-review.googlesource.com/152780
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-09-20 18:21:07 +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
Mike Klein
d505b19c05 add src/opts headers to .gni files
Chrome's analyze step uses GN and doesn't see changes
to these files as mattering to anything.

I've kept the ones particular to old style opts in
each of their particular targets, and the ones that
are included multiple times (including from outside
src/opts) in core.  Kind of arbitrary, but it's at
least close to the right slicing.

Change-Id: I2a5aaeca5b6287c13d7365ec1b63158f48e4e84a
Reviewed-on: https://skia-review.googlesource.com/152040
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-09-05 20:31:09 +00:00
Greg Daniel
da16cce7d9 Use our own checked in Vulkan header to build skia source code.
Core Skia will always include our own SkiaVulkan.h which basically just
includes vulkan_core.h. All platform vulkan specific stuff must be
include by the client in their own vulkan.h file. Our public interface
is set up that we only use vulkan objects that will be present in all
versions of vulkan headers that the client could include.

Bug: skia:
Change-Id: I6673fd91498eabcc923d65d20f2b5e0a89b4ccf6
Reviewed-on: https://skia-review.googlesource.com/142985
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-01 16:52:20 +00:00
Florin Malita
e4db80f1a6 Enable Skottie on Android framework builds.
It no longer requires RapidJSON.

Change-Id: Ifded5ef8f7a5196067af1c043518f2a95b461d6e
Reviewed-on: https://skia-review.googlesource.com/135625
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-07-10 13:50:25 +00:00
Brian Osman
8dc68c67f8 Make skcms mandatory
Change-Id: I6b08cd586d313e3bc41c0da90698fc26ae1a8bb8
Reviewed-on: https://skia-review.googlesource.com/130822
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-05-30 17:37:49 +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
Greg Daniel
98bddf930e 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>

TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,bungeman@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>
2018-05-25 17:25:23 +00:00
Greg Daniel
26c0e4c1f5 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>
2018-05-25 15:24:42 +00:00
Mike Klein
f536c454bf Reland "Retry enabling skcms on Android"
This is a reland of 05b5e40519

Original change's description:
> Retry enabling skcms on Android
> 
> Since we tried this last, DM has a direct skcms dependency
> via tests/ColorSpaceTest.cpp, so I've rearranged gn_to_bp.py slightly.
> 
> We need to keep our eyes out for BitmapRGBAF16Test.testGetPixel in CTS.
> 
> Change-Id: I3630bbebb4574522c43362c359d1a14da3bdd480
> Reviewed-on: https://skia-review.googlesource.com/124720
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

Change-Id: I67041fb00687f789c80b7ba41acd3bf2cf257cf3
Reviewed-on: https://skia-review.googlesource.com/126825
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-05-21 19:17:18 +00:00
Florin Malita
87ccf33f15 [skottie] Disable on Android Framework builds
Make Skottie truly optional (own flag), and disable in framework builds
(to unblock landing the RapidJson refactoring).

Change-Id: I4611f915e43fe11c1f6754ab4a9f63e45af2f8d3
Reviewed-on: https://skia-review.googlesource.com/125872
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-05-04 18:36:03 +00:00