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