Files
frameworks_base/libs/hwui/Android.bp
Tej Singh 78f65b6855 libandroid_runtime & libhwui: use libstats*_lazy
Update libandroid_runtime and libhwui, both of which are dependencies of
bootanimation, to use listatssocket_lazy and libstatspull_lazy, which
are new static versions of libstatssocket and libstatspull. This means
that bootanimation does not depend on these libraries, which are shipped
from the statsd apex.

The change enables removing the statsd apex from the bootstrap apexes.

Test: m
Test: boots
Test: no fatal linker errors after removing statsd from the bootstrap
apexes
Bug: 178480419

Change-Id: I78f4abe71f4b3718bbd97522c16f1c5ab88f77ae
2021-06-01 15:42:03 -07:00

771 lines
20 KiB
Plaintext

package {
default_applicable_licenses: ["frameworks_base_libs_hwui_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "frameworks_base_libs_hwui_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
],
license_text: [
"NOTICE",
],
}
cc_defaults {
name: "hwui_defaults",
defaults: [
"hwui_static_deps",
"skia_deps",
//"hwui_bugreport_font_cache_usage",
//"hwui_compile_for_perf",
"hwui_pgo",
"hwui_lto",
],
cpp_std: "experimental",
cflags: [
"-DEGL_EGLEXT_PROTOTYPES",
"-DGL_GLEXT_PROTOTYPES",
"-DATRACE_TAG=ATRACE_TAG_VIEW",
"-DLOG_TAG=\"OpenGLRenderer\"",
"-Wall",
"-Wno-unused-parameter",
"-Wunreachable-code",
"-Werror",
"-fvisibility=hidden",
// GCC false-positives on this warning, and since we -Werror that's
// a problem
"-Wno-free-nonheap-object",
],
include_dirs: [
"external/skia/include/private",
"external/skia/src/core",
],
product_variables: {
eng: {
lto: {
never: true,
},
},
},
target: {
android: {
include_dirs: [
"external/skia/src/effects",
"external/skia/src/image",
"external/skia/src/utils",
"external/skia/src/gpu",
"external/skia/src/shaders",
],
},
host: {
include_dirs: [
"external/vulkan-headers/include",
],
cflags: [
"-Wno-unused-variable",
],
},
},
}
cc_defaults {
name: "hwui_static_deps",
shared_libs: [
"libbase",
"libharfbuzz_ng",
"libminikin",
],
static_libs: [
"libui-types",
],
target: {
android: {
shared_libs: [
"liblog",
"libcutils",
"libutils",
"libEGL",
"libGLESv1_CM",
"libGLESv2",
"libGLESv3",
"libvulkan",
"libnativedisplay",
"libnativewindow",
"libprotobuf-cpp-lite",
"libft2",
"libandroidfw",
"libcrypto",
"libsync",
],
static_libs: [
"libEGL_blobCache",
"libprotoutil",
"libstatslog_hwui",
"libstatspull_lazy",
"libstatssocket_lazy",
],
},
host: {
static_libs: [
"libandroidfw",
"libutils",
],
},
},
}
cc_defaults {
name: "hwui_bugreport_font_cache_usage",
cflags: ["-DBUGREPORT_FONT_CACHE_USAGE"],
}
cc_defaults {
name: "hwui_compile_for_perf",
// TODO: Non-arm?
cflags: [
"-fno-omit-frame-pointer",
"-marm",
"-mapcs",
],
}
// Build libhwui with PGO by default.
// Location of PGO profile data is defined in build/soong/cc/pgo.go
// and is separate from hwui.
// To turn it off, set ANDROID_PGO_NO_PROFILE_USE environment variable
// or set enable_profile_use property to false.
cc_defaults {
name: "hwui_pgo",
pgo: {
instrumentation: true,
profile_file: "hwui/hwui.profdata",
benchmarks: ["hwui"],
enable_profile_use: true,
},
}
// Build hwui library with ThinLTO by default.
cc_defaults {
name: "hwui_lto",
target: {
android: {
lto: {
thin: true,
},
},
},
}
// ------------------------
// framework-graphics jar
// ------------------------
java_sdk_library {
name: "framework-graphics",
defaults: ["framework-module-defaults"],
visibility: [
"//frameworks/base", // Framework
],
srcs: [
":framework-graphics-srcs",
],
permitted_packages: [
"android.graphics",
],
// TODO: once framework-graphics is officially part of the
// UI-rendering module this line would no longer be
// needed.
installable: true,
// Disable api_lint that the defaults enable
// TODO: enable this
api_lint: {
enabled: false,
},
// TODO: remove this
unsafe_ignore_missing_latest_api: true,
}
filegroup {
name: "framework-graphics-srcs",
srcs: [
"apex/java/**/*.java",
],
path: "apex/java",
}
// ------------------------
// APEX
// ------------------------
cc_library_headers {
name: "android_graphics_apex_headers",
host_supported: true,
export_include_dirs: [
"apex/include",
],
target: {
windows: {
enabled: true,
},
},
}
cc_defaults {
name: "android_graphics_apex",
cflags: [
"-Wno-unused-parameter",
"-Wno-non-virtual-dtor",
"-Wno-maybe-uninitialized",
"-Wno-parentheses",
"-Wall",
"-Werror",
"-Wno-error=deprecated-declarations",
"-Wunused",
"-Wunreachable-code",
],
cppflags: ["-Wno-conversion-null"],
srcs: [
"apex/android_matrix.cpp",
"apex/android_paint.cpp",
"apex/android_region.cpp",
],
header_libs: ["android_graphics_apex_headers"],
target: {
android: {
srcs: [ // sources that depend on android only libraries
"apex/android_bitmap.cpp",
"apex/android_canvas.cpp",
"apex/jni_runtime.cpp",
"apex/renderthread.cpp",
],
},
host: {
srcs: [
"apex/LayoutlibLoader.cpp",
],
},
},
}
// ------------------------
// Android Graphics JNI
// ------------------------
cc_library_headers {
name: "android_graphics_jni_headers",
host_supported: true,
export_include_dirs: [
"jni",
],
target: {
windows: {
enabled: true,
},
},
}
cc_defaults {
name: "android_graphics_jni",
cflags: [
"-Wno-unused-parameter",
"-Wno-non-virtual-dtor",
"-Wno-maybe-uninitialized",
"-Wno-parentheses",
"-DGL_GLEXT_PROTOTYPES",
"-DEGL_EGLEXT_PROTOTYPES",
"-DU_USING_ICU_NAMESPACE=0",
"-Wall",
"-Werror",
"-Wno-error=deprecated-declarations",
"-Wunused",
"-Wunreachable-code",
],
cppflags: ["-Wno-conversion-null"],
srcs: [
"jni/android_graphics_animation_NativeInterpolatorFactory.cpp",
"jni/android_graphics_animation_RenderNodeAnimator.cpp",
"jni/android_graphics_Canvas.cpp",
"jni/android_graphics_ColorSpace.cpp",
"jni/android_graphics_drawable_AnimatedVectorDrawable.cpp",
"jni/android_graphics_drawable_VectorDrawable.cpp",
"jni/android_graphics_HardwareRendererObserver.cpp",
"jni/android_graphics_Matrix.cpp",
"jni/android_graphics_Picture.cpp",
"jni/android_graphics_DisplayListCanvas.cpp",
"jni/android_graphics_RenderNode.cpp",
"jni/android_nio_utils.cpp",
"jni/android_util_PathParser.cpp",
"jni/Bitmap.cpp",
"jni/BitmapFactory.cpp",
"jni/ByteBufferStreamAdaptor.cpp",
"jni/Camera.cpp",
"jni/CanvasProperty.cpp",
"jni/ColorFilter.cpp",
"jni/CreateJavaOutputStreamAdaptor.cpp",
"jni/FontFamily.cpp",
"jni/FontUtils.cpp",
"jni/Graphics.cpp",
"jni/ImageDecoder.cpp",
"jni/Interpolator.cpp",
"jni/MaskFilter.cpp",
"jni/NinePatch.cpp",
"jni/NinePatchPeeker.cpp",
"jni/Paint.cpp",
"jni/PaintFilter.cpp",
"jni/Path.cpp",
"jni/PathEffect.cpp",
"jni/PathMeasure.cpp",
"jni/Picture.cpp",
"jni/Shader.cpp",
"jni/RenderEffect.cpp",
"jni/Typeface.cpp",
"jni/Utils.cpp",
"jni/YuvToJpegEncoder.cpp",
"jni/fonts/Font.cpp",
"jni/fonts/FontFamily.cpp",
"jni/text/LineBreaker.cpp",
"jni/text/MeasuredText.cpp",
"jni/text/TextShaper.cpp",
],
header_libs: ["android_graphics_jni_headers"],
include_dirs: [
"external/skia/include/private",
"external/skia/src/codec",
"external/skia/src/core",
"external/skia/src/effects",
"external/skia/src/image",
"external/skia/src/images",
],
shared_libs: [
"libbase",
"libcutils",
"libharfbuzz_ng",
"liblog",
"libminikin",
"libz",
"libjpeg",
],
static_libs: [
"libnativehelper_lazy",
"libziparchive_for_incfs",
],
target: {
android: {
srcs: [ // sources that depend on android only libraries
"jni/AnimatedImageDrawable.cpp",
"jni/android_graphics_TextureLayer.cpp",
"jni/android_graphics_HardwareRenderer.cpp",
"jni/BitmapRegionDecoder.cpp",
"jni/GIFMovie.cpp",
"jni/GraphicsStatsService.cpp",
"jni/Movie.cpp",
"jni/MovieImpl.cpp",
"jni/Region.cpp", // requires libbinder_ndk
"jni/pdf/PdfDocument.cpp",
"jni/pdf/PdfEditor.cpp",
"jni/pdf/PdfRenderer.cpp",
"jni/pdf/PdfUtils.cpp",
],
shared_libs: [
"libandroidfw",
"libbinder",
"libbinder_ndk",
"libmediandk",
"libnativedisplay",
"libnativewindow",
"libpdfium",
],
static_libs: [
"libgif",
"libstatslog_hwui",
"libstatspull_lazy",
"libstatssocket_lazy",
],
},
host: {
cflags: [
"-Wno-unused-const-variable",
"-Wno-unused-function",
],
static_libs: [
"libandroidfw",
],
},
},
}
cc_library_static {
name: "libstatslog_hwui",
generated_sources: ["statslog_hwui.cpp"],
generated_headers: ["statslog_hwui.h"],
export_generated_headers: ["statslog_hwui.h"],
static_libs: [
"libstatssocket_lazy",
"libstatspull_lazy",
],
}
genrule {
name: "statslog_hwui.h",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_hwui.h --module hwui" +
" --namespace android,uirenderer,stats",
out: [
"statslog_hwui.h",
],
}
genrule {
name: "statslog_hwui.cpp",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_hwui.cpp --module hwui" +
" --namespace android,uirenderer,stats --importHeader statslog_hwui.h",
out: [
"statslog_hwui.cpp",
],
}
// ------------------------
// library
// ------------------------
cc_library_headers {
name: "libhwui_internal_headers",
host_supported: true,
export_include_dirs: [
".",
],
header_libs: ["android_graphics_jni_headers"],
export_header_lib_headers: ["android_graphics_jni_headers"],
}
cc_defaults {
name: "libhwui_defaults",
defaults: ["hwui_defaults"],
whole_static_libs: ["libskia"],
srcs: [
"canvas/CanvasFrontend.cpp",
"canvas/CanvasOpBuffer.cpp",
"canvas/CanvasOpRasterizer.cpp",
"effects/StretchEffect.cpp",
"pipeline/skia/HolePunch.cpp",
"pipeline/skia/SkiaDisplayList.cpp",
"pipeline/skia/SkiaRecordingCanvas.cpp",
"pipeline/skia/StretchMask.cpp",
"pipeline/skia/RenderNodeDrawable.cpp",
"pipeline/skia/ReorderBarrierDrawables.cpp",
"pipeline/skia/TransformCanvas.cpp",
"renderthread/Frame.cpp",
"renderthread/RenderTask.cpp",
"renderthread/TimeLord.cpp",
"hwui/AnimatedImageDrawable.cpp",
"hwui/Bitmap.cpp",
"hwui/BlurDrawLooper.cpp",
"hwui/Canvas.cpp",
"hwui/ImageDecoder.cpp",
"hwui/MinikinSkia.cpp",
"hwui/MinikinUtils.cpp",
"hwui/PaintImpl.cpp",
"hwui/Typeface.cpp",
"utils/Blur.cpp",
"utils/Color.cpp",
"utils/LinearAllocator.cpp",
"utils/VectorDrawableUtils.cpp",
"AnimationContext.cpp",
"Animator.cpp",
"AnimatorManager.cpp",
"CanvasTransform.cpp",
"DamageAccumulator.cpp",
"Interpolator.cpp",
"LightingInfo.cpp",
"Matrix.cpp",
"PathParser.cpp",
"Properties.cpp",
"PropertyValuesAnimatorSet.cpp",
"PropertyValuesHolder.cpp",
"RecordingCanvas.cpp",
"RenderNode.cpp",
"RenderProperties.cpp",
"RootRenderNode.cpp",
"SkiaCanvas.cpp",
"SkiaInterpolator.cpp",
"VectorDrawable.cpp",
],
proto: {
export_proto_headers: true,
},
target: {
android: {
header_libs: ["libandroid_headers_private"],
srcs: [
"hwui/AnimatedImageThread.cpp",
"pipeline/skia/ATraceMemoryDump.cpp",
"pipeline/skia/GLFunctorDrawable.cpp",
"pipeline/skia/LayerDrawable.cpp",
"pipeline/skia/ShaderCache.cpp",
"pipeline/skia/SkiaMemoryTracer.cpp",
"pipeline/skia/SkiaOpenGLPipeline.cpp",
"pipeline/skia/SkiaPipeline.cpp",
"pipeline/skia/SkiaProfileRenderer.cpp",
"pipeline/skia/SkiaVulkanPipeline.cpp",
"pipeline/skia/VkFunctorDrawable.cpp",
"pipeline/skia/VkInteropFunctorDrawable.cpp",
"renderstate/RenderState.cpp",
"renderthread/CacheManager.cpp",
"renderthread/CanvasContext.cpp",
"renderthread/DrawFrameTask.cpp",
"renderthread/EglManager.cpp",
"renderthread/ReliableSurface.cpp",
"renderthread/VulkanManager.cpp",
"renderthread/VulkanSurface.cpp",
"renderthread/RenderProxy.cpp",
"renderthread/RenderThread.cpp",
"service/GraphicsStatsService.cpp",
"thread/CommonPool.cpp",
"utils/GLUtils.cpp",
"utils/NdkUtils.cpp",
"utils/StringUtils.cpp",
"AutoBackendTextureRelease.cpp",
"DeferredLayerUpdater.cpp",
"DeviceInfo.cpp",
"FrameInfo.cpp",
"FrameInfoVisualizer.cpp",
"HardwareBitmapUploader.cpp",
"HWUIProperties.sysprop",
"JankTracker.cpp",
"Layer.cpp",
"LayerUpdateQueue.cpp",
"ProfileData.cpp",
"ProfileDataContainer.cpp",
"Readback.cpp",
"TreeInfo.cpp",
"WebViewFunctorManager.cpp",
"protos/graphicsstats.proto",
],
// Allow implicit fallthroughs in HardwareBitmapUploader.cpp until they are fixed.
cflags: ["-Wno-implicit-fallthrough"],
},
host: {
srcs: [
"utils/HostColorSpace.cpp",
],
export_static_lib_headers: [
"libarect",
],
},
},
}
cc_library {
name: "libhwui",
host_supported: true,
defaults: [
"libhwui_defaults",
"android_graphics_apex",
"android_graphics_jni",
"linker_hugepage_aligned",
],
export_header_lib_headers: ["android_graphics_apex_headers"],
target: {
android: {
version_script: "libhwui.map.txt",
},
},
}
cc_library_static {
name: "libhwui_static",
defaults: [
"libhwui_defaults",
],
}
cc_defaults {
name: "hwui_test_defaults",
defaults: ["hwui_defaults"],
test_suites: ["device-tests"],
header_libs: ["libandroid_headers_private"],
target: {
android: {
shared_libs: [
"libgui",
"libui",
],
},
},
srcs: [
"tests/common/scenes/*.cpp",
"tests/common/LeakChecker.cpp",
"tests/common/TestListViewSceneBase.cpp",
"tests/common/TestContext.cpp",
"tests/common/TestScene.cpp",
"tests/common/TestUtils.cpp",
],
}
// ------------------------
// unit tests
// ------------------------
cc_test {
name: "hwui_unit_tests",
defaults: [
"hwui_test_defaults",
"android_graphics_apex",
"android_graphics_jni",
],
static_libs: [
"libgmock",
"libhwui_static",
],
shared_libs: [
"libmemunreachable",
],
srcs: [
"tests/unit/main.cpp",
"tests/unit/ABitmapTests.cpp",
"tests/unit/CacheManagerTests.cpp",
"tests/unit/CanvasContextTests.cpp",
"tests/unit/CanvasOpTests.cpp",
"tests/unit/CanvasFrontendTests.cpp",
"tests/unit/CommonPoolTests.cpp",
"tests/unit/DamageAccumulatorTests.cpp",
"tests/unit/DeferredLayerUpdaterTests.cpp",
"tests/unit/EglManagerTests.cpp",
"tests/unit/FatVectorTests.cpp",
"tests/unit/GraphicsStatsServiceTests.cpp",
"tests/unit/JankTrackerTests.cpp",
"tests/unit/LayerUpdateQueueTests.cpp",
"tests/unit/LinearAllocatorTests.cpp",
"tests/unit/MatrixTests.cpp",
"tests/unit/OpBufferTests.cpp",
"tests/unit/PathInterpolatorTests.cpp",
"tests/unit/RenderNodeDrawableTests.cpp",
"tests/unit/RenderNodeTests.cpp",
"tests/unit/RenderPropertiesTests.cpp",
"tests/unit/RenderThreadTests.cpp",
"tests/unit/ShaderCacheTests.cpp",
"tests/unit/SkiaBehaviorTests.cpp",
"tests/unit/SkiaDisplayListTests.cpp",
"tests/unit/SkiaPipelineTests.cpp",
"tests/unit/SkiaRenderPropertiesTests.cpp",
"tests/unit/SkiaCanvasTests.cpp",
"tests/unit/StretchEffectTests.cpp",
"tests/unit/StringUtilsTests.cpp",
"tests/unit/TestUtilsTests.cpp",
"tests/unit/ThreadBaseTests.cpp",
"tests/unit/TypefaceTests.cpp",
"tests/unit/VectorDrawableTests.cpp",
"tests/unit/WebViewFunctorManagerTests.cpp",
],
}
// ------------------------
// Macro-bench app
// ------------------------
cc_benchmark {
name: "hwuimacro",
defaults: ["hwui_test_defaults"],
static_libs: ["libhwui"],
shared_libs: [
"libmemunreachable",
],
srcs: [
"tests/macrobench/TestSceneRunner.cpp",
"tests/macrobench/main.cpp",
],
}
// ------------------------
// Micro-bench app
// ---------------------
cc_benchmark {
name: "hwuimicro",
defaults: ["hwui_test_defaults"],
static_libs: ["libhwui_static"],
shared_libs: [
"libmemunreachable",
],
srcs: [
"tests/microbench/main.cpp",
"tests/microbench/CanvasOpBench.cpp",
"tests/microbench/DisplayListCanvasBench.cpp",
"tests/microbench/LinearAllocatorBench.cpp",
"tests/microbench/PathParserBench.cpp",
"tests/microbench/RenderNodeBench.cpp",
],
}
// ----------------------------------------
// Phony target to build benchmarks for PGO
// ----------------------------------------
phony {
name: "pgo-targets-hwui",
required: [
"hwuimicro",
"hwuimacro",
],
}