From 5a932166e872dab74382f9cf23c9309a3b339638 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Thu, 21 Sep 2017 14:25:14 -0400 Subject: 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 Commit-Queue: Derek Sollenberger --- gn/gn_to_bp.py | 86 ++++++++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 59 deletions(-) (limited to 'gn/gn_to_bp.py') diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index 56fa3cc784..f0a28a8941 100644 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py @@ -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), -- cgit v1.2.3