Update the Android.bp to expose a static library

This CL will enable Android to statically link libskia into libhwui
while still exposing the symbols needed by other components of the
system.

Bug: b/31971097
Change-Id: Ib6c87331dbe456e247b46a34c38da4863dfe02f0
Reviewed-on: https://skia-review.googlesource.com/49766
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
This commit is contained in:
Derek Sollenberger 2017-09-21 14:25:14 -04:00 committed by Skia Commit-Bot
parent 0e4e410ac8
commit 5a932166e8

View File

@ -14,51 +14,19 @@ import string
import subprocess
import tempfile
tool_cflags = [
'-Wno-unused-parameter',
]
# It's easier to maintain one list instead of separate lists.
tool_shared_libs = [
'liblog',
'libGLESv2',
'libEGL',
'libvulkan',
'libz',
'libjpeg',
'libpng',
'libicuuc',
'libicui18n',
'libexpat',
'libft2',
'libheif',
'libdng_sdk',
'libpiex',
'libcutils',
'libnativewindow',
]
# The ordering here is important: libsfntly needs to come after libskia.
tool_static_libs = [
'libarect',
'libjsoncpp',
'libskia',
'libsfntly',
'libwebp-decode',
'libwebp-encode',
]
# First we start off with a template for Android.bp,
# with holes for source lists and include directories.
bp = string.Template('''// This file is autogenerated by gn_to_bp.py.
cc_library {
cc_library_static {
name: "libskia",
cflags: [
"-fexceptions",
"-fvisibility=hidden",
"-Wno-unused-parameter",
"-U_FORTIFY_SOURCE",
"-D_FORTIFY_SOURCE=1",
"-DSKIA_DLL",
"-DSKIA_IMPLEMENTATION=1",
"-DATRACE_TAG=ATRACE_TAG_VIEW",
],
@ -119,6 +87,11 @@ cc_library {
},
},
defaults: ["skia_deps"],
}
cc_defaults {
name: "skia_deps",
shared_libs: [
"libEGL",
"libGLESv2",
@ -143,13 +116,28 @@ cc_library {
"libwebp-decode",
"libwebp-encode",
],
group_static_libs: true,
}
cc_defaults {
name: "skia_tool_deps",
defaults: [
"skia_deps"
],
static_libs: [
"libjsoncpp",
"libskia",
],
cflags: [
"-Wno-unused-parameter"
],
}
cc_test {
name: "skia_dm",
cflags: [
$tool_cflags
defaults: [
"skia_tool_deps"
],
local_include_dirs: [
@ -159,21 +147,13 @@ cc_test {
srcs: [
$dm_srcs
],
shared_libs: [
$tool_shared_libs
],
static_libs: [
$tool_static_libs
],
}
cc_test {
name: "skia_nanobench",
cflags: [
$tool_cflags
defaults: [
"skia_tool_deps"
],
local_include_dirs: [
@ -183,14 +163,6 @@ cc_test {
srcs: [
$nanobench_srcs
],
shared_libs: [
$tool_shared_libs
],
static_libs: [
$tool_static_libs
],
}''')
# We'll run GN to get the main source lists and include directories for Skia.
@ -299,10 +271,6 @@ with open('Android.bp', 'w') as f:
defs['sse42'] +
defs['avx' ])),
'tool_cflags' : bpfmt(8, tool_cflags),
'tool_shared_libs' : bpfmt(8, tool_shared_libs),
'tool_static_libs' : bpfmt(8, tool_static_libs, False),
'dm_includes' : bpfmt(8, dm_includes),
'dm_srcs' : bpfmt(8, dm_srcs),