From 981a31e6a8bd8d48ee2b56afd6424be8a21042c8 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 6 Oct 2017 11:53:53 -0400 Subject: Generate warning settings for Android framework Bug: b/66996870 Android wants to build with warnings as errors. Keep the external/skia warnings in sync with other Skia builds by pulling them from the json generated by GN. Fix a couple small errors that show up in the framework build. Uploaded in response to AOSP's https://android-review.googlesource.com/#/c/platform/external/skia/+/498211/ Change-Id: I4d791d43a9b00f9d6b79ecf16839716f241cba99 Reviewed-on: https://skia-review.googlesource.com/55703 Commit-Queue: Leon Scroggins Reviewed-by: Mike Klein --- gn/gn_to_bp.py | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'gn/gn_to_bp.py') diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index f0a28a8941..239fb020fd 100644 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py @@ -21,14 +21,11 @@ bp = string.Template('''// This file is autogenerated by gn_to_bp.py. 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", + $cflags + ], + + cppflags:[ + $cflags_cc ], export_include_dirs: [ @@ -185,6 +182,8 @@ def strip_slashes(lst): return {str(p.lstrip('/')) for p in lst} srcs = strip_slashes(js['targets']['//:skia']['sources']) +cflags = strip_slashes(js['targets']['//:skia']['cflags']) +cflags_cc = strip_slashes(js['targets']['//:skia']['cflags_cc']) local_includes = strip_slashes(js['targets']['//:skia']['include_dirs']) export_includes = strip_slashes(js['targets']['//:public']['include_dirs']) @@ -217,6 +216,24 @@ srcs = {s for s in srcs if not s.endswith('.h')} dm_srcs = {s for s in dm_srcs if not s.endswith('.h')} nanobench_srcs = {s for s in nanobench_srcs if not s.endswith('.h')} +# Only use the generated flags related to warnings. +cflags = {s for s in cflags if s.startswith('-W')} +cflags_cc = {s for s in cflags_cc if s.startswith('-W')} +# Add the rest of the flags we want. +cflags = cflags.union([ + "-fvisibility=hidden", + "-D_FORTIFY_SOURCE=1", + "-DSKIA_DLL", + "-DSKIA_IMPLEMENTATION=1", + "-DATRACE_TAG=ATRACE_TAG_VIEW", +]) +cflags_cc.add("-fexceptions") + +# We need to undefine FORTIFY_SOURCE before we define it. Insert it at the +# beginning after sorting. +cflags = sorted(cflags) +cflags.insert(0, "-U_FORTIFY_SOURCE") + # Most defines go into SkUserConfig.h, where they're seen by Skia and its users. defines = [str(d) for d in js['targets']['//:skia']['defines']] defines.remove('NDEBUG') # Let the Android build control this. @@ -259,6 +276,8 @@ with open('Android.bp', 'w') as f: 'export_includes': bpfmt(8, export_includes), 'local_includes': bpfmt(8, local_includes), 'srcs': bpfmt(8, srcs), + 'cflags': bpfmt(8, cflags, False), + 'cflags_cc': bpfmt(8, cflags_cc), 'arm_srcs': bpfmt(16, scrub(defs['armv7'])), 'arm_neon_srcs': bpfmt(20, scrub(defs['neon'])), -- cgit v1.2.3