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>