xref: /aosp_15_r20/frameworks/native/libs/renderengine/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_native_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_native_license"],
8    default_team: "trendy_team_android_core_graphics_stack",
9}
10
11cc_defaults {
12    name: "renderengine_defaults",
13    cflags: [
14        "-DLOG_TAG=\"RenderEngine\"",
15        "-Wall",
16        "-Werror",
17        "-Wthread-safety",
18        "-Wunused",
19        "-Wunreachable-code",
20    ],
21}
22
23cc_defaults {
24    name: "librenderengine_defaults",
25    defaults: [
26        "android.hardware.graphics.composer3-ndk_shared",
27        "renderengine_defaults",
28    ],
29    cflags: [
30        "-DGL_GLEXT_PROTOTYPES",
31        "-DEGL_EGLEXT_PROTOTYPES",
32    ],
33    shared_libs: [
34        "libbase",
35        "libcutils",
36        "libEGL",
37        "libGLESv1_CM",
38        "libGLESv2",
39        "libgui",
40        "liblog",
41        "libnativewindow",
42        "libprocessgroup",
43        "libsync",
44        "libui",
45        "libutils",
46        "libvulkan",
47    ],
48
49    static_libs: [
50        "libshaders",
51        "libtonemap",
52        "libsurfaceflinger_common",
53        "libsurfaceflingerflags",
54    ],
55    local_include_dirs: ["include"],
56    export_include_dirs: ["include"],
57}
58
59// Needed by FlagManager to access a #define.
60cc_library_static {
61    name: "librenderengine_includes",
62    local_include_dirs: ["include"],
63    export_include_dirs: ["include"],
64}
65
66filegroup {
67    name: "librenderengine_sources",
68    srcs: [
69        "ExternalTexture.cpp",
70        "RenderEngine.cpp",
71    ],
72}
73
74filegroup {
75    name: "librenderengine_threaded_sources",
76    srcs: [
77        "threaded/RenderEngineThreaded.cpp",
78    ],
79}
80
81filegroup {
82    name: "librenderengine_skia_sources",
83    srcs: [
84        "skia/AutoBackendTexture.cpp",
85        "skia/Cache.cpp",
86        "skia/ColorSpaces.cpp",
87        "skia/GaneshVkRenderEngine.cpp",
88        "skia/GraphiteVkRenderEngine.cpp",
89        "skia/GLExtensions.cpp",
90        "skia/SkiaRenderEngine.cpp",
91        "skia/SkiaGLRenderEngine.cpp",
92        "skia/SkiaVkRenderEngine.cpp",
93        "skia/VulkanInterface.cpp",
94        "skia/compat/GaneshBackendTexture.cpp",
95        "skia/compat/GaneshGpuContext.cpp",
96        "skia/compat/GraphiteBackendTexture.cpp",
97        "skia/compat/GraphiteGpuContext.cpp",
98        "skia/debug/CaptureTimer.cpp",
99        "skia/debug/CommonPool.cpp",
100        "skia/debug/SkiaCapture.cpp",
101        "skia/debug/SkiaMemoryReporter.cpp",
102        "skia/filters/BlurFilter.cpp",
103        "skia/filters/GainmapFactory.cpp",
104        "skia/filters/GaussianBlurFilter.cpp",
105        "skia/filters/KawaseBlurDualFilter.cpp",
106        "skia/filters/KawaseBlurFilter.cpp",
107        "skia/filters/LinearEffect.cpp",
108        "skia/filters/LutShader.cpp",
109        "skia/filters/MouriMap.cpp",
110        "skia/filters/StretchShaderFactory.cpp",
111        "skia/filters/EdgeExtensionShaderFactory.cpp",
112    ],
113}
114
115// Used to consolidate and simplify pulling Skia & Skia deps into targets that depend on
116// librenderengine. This allows shared deps to be deduplicated (e.g. Perfetto), which doesn't seem
117// possible if libskia_renderengine is just pulled into librenderengine via whole_static_libs.
118cc_defaults {
119    name: "librenderengine_deps",
120    defaults: ["skia_renderengine_deps"],
121    static_libs: ["libskia_renderengine"],
122}
123
124// Note: if compilation fails when adding librenderengine as a dependency, try adding
125// librenderengine_deps to the defaults field of your dependent target.
126cc_library_static {
127    name: "librenderengine",
128    defaults: [
129        "librenderengine_defaults",
130        "librenderengine_deps",
131    ],
132    double_loadable: true,
133    cflags: [
134        "-fvisibility=hidden",
135        "-Werror=format",
136        "-Wno-unused-parameter",
137    ],
138    srcs: [
139        ":librenderengine_sources",
140        ":librenderengine_threaded_sources",
141        ":librenderengine_skia_sources",
142    ],
143    header_libs: [
144        "libtonemap_headers",
145    ],
146    include_dirs: [
147        "external/skia/src/gpu",
148    ],
149    lto: {
150        thin: true,
151    },
152}
153
154cc_library_static {
155    name: "librenderengine_mocks",
156    defaults: ["librenderengine_defaults"],
157    srcs: [
158        "mock/RenderEngine.cpp",
159    ],
160    static_libs: [
161        "libgtest",
162        "libgmock",
163    ],
164    local_include_dirs: ["include"],
165    export_include_dirs: ["include"],
166}
167