xref: /aosp_15_r20/frameworks/native/opengl/libs/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker// Build the ETC1 library
2*38e8c45fSAndroid Build Coastguard Workerpackage {
3*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
4*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
5*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
6*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
7*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
8*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
9*38e8c45fSAndroid Build Coastguard Worker}
10*38e8c45fSAndroid Build Coastguard Worker
11*38e8c45fSAndroid Build Coastguard Workercc_library {
12*38e8c45fSAndroid Build Coastguard Worker    name: "libETC1",
13*38e8c45fSAndroid Build Coastguard Worker    srcs: ["ETC1/etc1.cpp"],
14*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
15*38e8c45fSAndroid Build Coastguard Worker    cflags: [
16*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
17*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
18*38e8c45fSAndroid Build Coastguard Worker    ],
19*38e8c45fSAndroid Build Coastguard Worker
20*38e8c45fSAndroid Build Coastguard Worker    target: {
21*38e8c45fSAndroid Build Coastguard Worker        android: {
22*38e8c45fSAndroid Build Coastguard Worker            static: {
23*38e8c45fSAndroid Build Coastguard Worker                enabled: false,
24*38e8c45fSAndroid Build Coastguard Worker            },
25*38e8c45fSAndroid Build Coastguard Worker        },
26*38e8c45fSAndroid Build Coastguard Worker        host: {
27*38e8c45fSAndroid Build Coastguard Worker            shared: {
28*38e8c45fSAndroid Build Coastguard Worker                enabled: false,
29*38e8c45fSAndroid Build Coastguard Worker            },
30*38e8c45fSAndroid Build Coastguard Worker        },
31*38e8c45fSAndroid Build Coastguard Worker        windows: {
32*38e8c45fSAndroid Build Coastguard Worker            enabled: true,
33*38e8c45fSAndroid Build Coastguard Worker        },
34*38e8c45fSAndroid Build Coastguard Worker    },
35*38e8c45fSAndroid Build Coastguard Worker}
36*38e8c45fSAndroid Build Coastguard Worker
37*38e8c45fSAndroid Build Coastguard Worker// The headers modules are in frameworks/native/opengl/Android.bp.
38*38e8c45fSAndroid Build Coastguard Workerndk_library {
39*38e8c45fSAndroid Build Coastguard Worker    name: "libEGL",
40*38e8c45fSAndroid Build Coastguard Worker    symbol_file: "libEGL.map.txt",
41*38e8c45fSAndroid Build Coastguard Worker    first_version: "9",
42*38e8c45fSAndroid Build Coastguard Worker    unversioned_until: "current",
43*38e8c45fSAndroid Build Coastguard Worker}
44*38e8c45fSAndroid Build Coastguard Worker
45*38e8c45fSAndroid Build Coastguard Workerndk_library {
46*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv1_CM",
47*38e8c45fSAndroid Build Coastguard Worker    symbol_file: "libGLESv1_CM.map.txt",
48*38e8c45fSAndroid Build Coastguard Worker    first_version: "9",
49*38e8c45fSAndroid Build Coastguard Worker    unversioned_until: "current",
50*38e8c45fSAndroid Build Coastguard Worker}
51*38e8c45fSAndroid Build Coastguard Worker
52*38e8c45fSAndroid Build Coastguard Workerndk_library {
53*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv2",
54*38e8c45fSAndroid Build Coastguard Worker    symbol_file: "libGLESv2.map.txt",
55*38e8c45fSAndroid Build Coastguard Worker    first_version: "9",
56*38e8c45fSAndroid Build Coastguard Worker    unversioned_until: "current",
57*38e8c45fSAndroid Build Coastguard Worker}
58*38e8c45fSAndroid Build Coastguard Worker
59*38e8c45fSAndroid Build Coastguard Workerndk_library {
60*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv3",
61*38e8c45fSAndroid Build Coastguard Worker    symbol_file: "libGLESv3.map.txt",
62*38e8c45fSAndroid Build Coastguard Worker    first_version: "18",
63*38e8c45fSAndroid Build Coastguard Worker    unversioned_until: "current",
64*38e8c45fSAndroid Build Coastguard Worker}
65*38e8c45fSAndroid Build Coastguard Worker
66*38e8c45fSAndroid Build Coastguard Workeraconfig_declarations {
67*38e8c45fSAndroid Build Coastguard Worker    name: "egl_flags",
68*38e8c45fSAndroid Build Coastguard Worker    package: "com.android.graphics.egl.flags",
69*38e8c45fSAndroid Build Coastguard Worker    container: "system",
70*38e8c45fSAndroid Build Coastguard Worker    srcs: ["EGL/egl_flags.aconfig"],
71*38e8c45fSAndroid Build Coastguard Worker}
72*38e8c45fSAndroid Build Coastguard Worker
73*38e8c45fSAndroid Build Coastguard Workercc_aconfig_library {
74*38e8c45fSAndroid Build Coastguard Worker    name: "libegl_flags",
75*38e8c45fSAndroid Build Coastguard Worker    aconfig_declarations: "egl_flags",
76*38e8c45fSAndroid Build Coastguard Worker}
77*38e8c45fSAndroid Build Coastguard Worker
78*38e8c45fSAndroid Build Coastguard Workercc_defaults {
79*38e8c45fSAndroid Build Coastguard Worker    name: "gl_libs_defaults",
80*38e8c45fSAndroid Build Coastguard Worker    cflags: [
81*38e8c45fSAndroid Build Coastguard Worker        "-DGL_GLEXT_PROTOTYPES",
82*38e8c45fSAndroid Build Coastguard Worker        "-DEGL_EGLEXT_PROTOTYPES",
83*38e8c45fSAndroid Build Coastguard Worker        "-fvisibility=hidden",
84*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
85*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
86*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unused-variable",
87*38e8c45fSAndroid Build Coastguard Worker    ],
88*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
89*38e8c45fSAndroid Build Coastguard Worker        // ***** DO NOT ADD NEW DEPENDENCIES HERE *****
90*38e8c45fSAndroid Build Coastguard Worker        // In particular, DO NOT add libutils or anything "above" libcutils
91*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
92*38e8c45fSAndroid Build Coastguard Worker        "liblog",
93*38e8c45fSAndroid Build Coastguard Worker        "libdl",
94*38e8c45fSAndroid Build Coastguard Worker    ],
95*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
96*38e8c45fSAndroid Build Coastguard Worker        "libarect",
97*38e8c45fSAndroid Build Coastguard Worker    ],
98*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
99*38e8c45fSAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
100*38e8c45fSAndroid Build Coastguard Worker        "gl_headers",
101*38e8c45fSAndroid Build Coastguard Worker        "libsystem_headers",
102*38e8c45fSAndroid Build Coastguard Worker        "libnativebase_headers",
103*38e8c45fSAndroid Build Coastguard Worker    ],
104*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: ["gl_headers"],
105*38e8c45fSAndroid Build Coastguard Worker}
106*38e8c45fSAndroid Build Coastguard Worker
107*38e8c45fSAndroid Build Coastguard Worker//##############################################################################
108*38e8c45fSAndroid Build Coastguard Worker// Build META EGL library
109*38e8c45fSAndroid Build Coastguard Worker//
110*38e8c45fSAndroid Build Coastguard Workercc_defaults {
111*38e8c45fSAndroid Build Coastguard Worker    name: "egl_libs_defaults",
112*38e8c45fSAndroid Build Coastguard Worker    defaults: ["gl_libs_defaults"],
113*38e8c45fSAndroid Build Coastguard Worker    cflags: [
114*38e8c45fSAndroid Build Coastguard Worker        "-DLOG_TAG=\"libEGL\"",
115*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
116*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
117*38e8c45fSAndroid Build Coastguard Worker        "-Wno-error=deprecated-register",
118*38e8c45fSAndroid Build Coastguard Worker        "-Wno-error=unknown-attributes",
119*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unused-variable",
120*38e8c45fSAndroid Build Coastguard Worker    ],
121*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
122*38e8c45fSAndroid Build Coastguard Worker        // ***** DO NOT ADD NEW DEPENDENCIES HERE *****
123*38e8c45fSAndroid Build Coastguard Worker        // In particular, DO NOT add libutils nor anything "above" libui
124*38e8c45fSAndroid Build Coastguard Worker        "libgraphicsenv",
125*38e8c45fSAndroid Build Coastguard Worker        "libnativewindow",
126*38e8c45fSAndroid Build Coastguard Worker        "libbase",
127*38e8c45fSAndroid Build Coastguard Worker    ],
128*38e8c45fSAndroid Build Coastguard Worker}
129*38e8c45fSAndroid Build Coastguard Worker
130*38e8c45fSAndroid Build Coastguard Workercc_library_static {
131*38e8c45fSAndroid Build Coastguard Worker    name: "libEGL_getProcAddress",
132*38e8c45fSAndroid Build Coastguard Worker    defaults: ["egl_libs_defaults"],
133*38e8c45fSAndroid Build Coastguard Worker    srcs: ["EGL/getProcAddress.cpp"],
134*38e8c45fSAndroid Build Coastguard Worker    arch: {
135*38e8c45fSAndroid Build Coastguard Worker        arm: {
136*38e8c45fSAndroid Build Coastguard Worker            instruction_set: "arm",
137*38e8c45fSAndroid Build Coastguard Worker        },
138*38e8c45fSAndroid Build Coastguard Worker    },
139*38e8c45fSAndroid Build Coastguard Worker}
140*38e8c45fSAndroid Build Coastguard Worker
141*38e8c45fSAndroid Build Coastguard Workercc_library_static {
142*38e8c45fSAndroid Build Coastguard Worker    name: "libEGL_blobCache",
143*38e8c45fSAndroid Build Coastguard Worker    defaults: ["egl_libs_defaults"],
144*38e8c45fSAndroid Build Coastguard Worker    srcs: [
145*38e8c45fSAndroid Build Coastguard Worker        "EGL/BlobCache.cpp",
146*38e8c45fSAndroid Build Coastguard Worker        "EGL/FileBlobCache.cpp",
147*38e8c45fSAndroid Build Coastguard Worker        "EGL/MultifileBlobCache.cpp",
148*38e8c45fSAndroid Build Coastguard Worker    ],
149*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["EGL"],
150*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
151*38e8c45fSAndroid Build Coastguard Worker        "libegl_flags",
152*38e8c45fSAndroid Build Coastguard Worker        "libz",
153*38e8c45fSAndroid Build Coastguard Worker    ],
154*38e8c45fSAndroid Build Coastguard Worker}
155*38e8c45fSAndroid Build Coastguard Worker
156*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
157*38e8c45fSAndroid Build Coastguard Worker    name: "libEGL",
158*38e8c45fSAndroid Build Coastguard Worker    defaults: ["egl_libs_defaults"],
159*38e8c45fSAndroid Build Coastguard Worker    llndk: {
160*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libEGL.map.txt",
161*38e8c45fSAndroid Build Coastguard Worker        export_llndk_headers: ["gl_headers"],
162*38e8c45fSAndroid Build Coastguard Worker        // Don't export EGL/include from the LLNDK variant.
163*38e8c45fSAndroid Build Coastguard Worker        override_export_include_dirs: [],
164*38e8c45fSAndroid Build Coastguard Worker    },
165*38e8c45fSAndroid Build Coastguard Worker    srcs: [
166*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_tls.cpp",
167*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_cache.cpp",
168*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_display.cpp",
169*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_object.cpp",
170*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_layers.cpp",
171*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl.cpp",
172*38e8c45fSAndroid Build Coastguard Worker        "EGL/eglApi.cpp",
173*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_platform_entries.cpp",
174*38e8c45fSAndroid Build Coastguard Worker        "EGL/Loader.cpp",
175*38e8c45fSAndroid Build Coastguard Worker        "EGL/egl_angle_platform.cpp",
176*38e8c45fSAndroid Build Coastguard Worker    ],
177*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
178*38e8c45fSAndroid Build Coastguard Worker        "libvndksupport",
179*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
180*38e8c45fSAndroid Build Coastguard Worker        "android.hardware.configstore-utils",
181*38e8c45fSAndroid Build Coastguard Worker        "libbase",
182*38e8c45fSAndroid Build Coastguard Worker        "libegl_flags",
183*38e8c45fSAndroid Build Coastguard Worker        "libhidlbase",
184*38e8c45fSAndroid Build Coastguard Worker        "libnativebridge_lazy",
185*38e8c45fSAndroid Build Coastguard Worker        "libnativeloader_lazy",
186*38e8c45fSAndroid Build Coastguard Worker        "libutils",
187*38e8c45fSAndroid Build Coastguard Worker        "libSurfaceFlingerProp",
188*38e8c45fSAndroid Build Coastguard Worker        "libunwindstack",
189*38e8c45fSAndroid Build Coastguard Worker        "libz",
190*38e8c45fSAndroid Build Coastguard Worker    ],
191*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
192*38e8c45fSAndroid Build Coastguard Worker        "libEGL_getProcAddress",
193*38e8c45fSAndroid Build Coastguard Worker        "libEGL_blobCache",
194*38e8c45fSAndroid Build Coastguard Worker    ],
195*38e8c45fSAndroid Build Coastguard Worker    ldflags: [
196*38e8c45fSAndroid Build Coastguard Worker        "-Wl,--exclude-libs=libEGL_getProcAddress.a",
197*38e8c45fSAndroid Build Coastguard Worker        "-Wl,--exclude-libs=libEGL_blobCache.a",
198*38e8c45fSAndroid Build Coastguard Worker        "-Wl,--Bsymbolic-functions",
199*38e8c45fSAndroid Build Coastguard Worker    ],
200*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["EGL/include"],
201*38e8c45fSAndroid Build Coastguard Worker    stubs: {
202*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libEGL.map.txt",
203*38e8c45fSAndroid Build Coastguard Worker        versions: ["29"],
204*38e8c45fSAndroid Build Coastguard Worker    },
205*38e8c45fSAndroid Build Coastguard Worker    header_libs: ["libsurfaceflinger_headers"],
206*38e8c45fSAndroid Build Coastguard Worker}
207*38e8c45fSAndroid Build Coastguard Worker
208*38e8c45fSAndroid Build Coastguard Workercc_test {
209*38e8c45fSAndroid Build Coastguard Worker    name: "libEGL_test",
210*38e8c45fSAndroid Build Coastguard Worker    defaults: ["egl_libs_defaults"],
211*38e8c45fSAndroid Build Coastguard Worker    srcs: [
212*38e8c45fSAndroid Build Coastguard Worker        "EGL/BlobCache.cpp",
213*38e8c45fSAndroid Build Coastguard Worker        "EGL/BlobCache_test.cpp",
214*38e8c45fSAndroid Build Coastguard Worker        "EGL/FileBlobCache.cpp",
215*38e8c45fSAndroid Build Coastguard Worker        "EGL/MultifileBlobCache.cpp",
216*38e8c45fSAndroid Build Coastguard Worker        "EGL/MultifileBlobCache_test.cpp",
217*38e8c45fSAndroid Build Coastguard Worker    ],
218*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
219*38e8c45fSAndroid Build Coastguard Worker        "libegl_flags",
220*38e8c45fSAndroid Build Coastguard Worker        "libutils",
221*38e8c45fSAndroid Build Coastguard Worker        "libz",
222*38e8c45fSAndroid Build Coastguard Worker    ],
223*38e8c45fSAndroid Build Coastguard Worker}
224*38e8c45fSAndroid Build Coastguard Worker
225*38e8c45fSAndroid Build Coastguard Workercc_defaults {
226*38e8c45fSAndroid Build Coastguard Worker    name: "gles_libs_defaults",
227*38e8c45fSAndroid Build Coastguard Worker    defaults: ["gl_libs_defaults"],
228*38e8c45fSAndroid Build Coastguard Worker    arch: {
229*38e8c45fSAndroid Build Coastguard Worker        arm: {
230*38e8c45fSAndroid Build Coastguard Worker            instruction_set: "arm",
231*38e8c45fSAndroid Build Coastguard Worker
232*38e8c45fSAndroid Build Coastguard Worker            // TODO: This is to work around b/20093774. Remove after root cause is fixed
233*38e8c45fSAndroid Build Coastguard Worker            ldflags: ["-Wl,--hash-style,both"],
234*38e8c45fSAndroid Build Coastguard Worker        },
235*38e8c45fSAndroid Build Coastguard Worker    },
236*38e8c45fSAndroid Build Coastguard Worker    shared_libs: ["libEGL"],
237*38e8c45fSAndroid Build Coastguard Worker}
238*38e8c45fSAndroid Build Coastguard Worker
239*38e8c45fSAndroid Build Coastguard Worker//##############################################################################
240*38e8c45fSAndroid Build Coastguard Worker// Build the wrapper OpenGL ES 1.x library
241*38e8c45fSAndroid Build Coastguard Worker//
242*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
243*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv1_CM",
244*38e8c45fSAndroid Build Coastguard Worker    defaults: ["gles_libs_defaults"],
245*38e8c45fSAndroid Build Coastguard Worker    llndk: {
246*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libGLESv1_CM.map.txt",
247*38e8c45fSAndroid Build Coastguard Worker        export_llndk_headers: ["gl_headers"],
248*38e8c45fSAndroid Build Coastguard Worker        // Don't export EGL/include from the LLNDK variant.
249*38e8c45fSAndroid Build Coastguard Worker        override_export_include_dirs: [],
250*38e8c45fSAndroid Build Coastguard Worker    },
251*38e8c45fSAndroid Build Coastguard Worker    srcs: ["GLES_CM/gl.cpp"],
252*38e8c45fSAndroid Build Coastguard Worker    cflags: ["-DLOG_TAG=\"libGLESv1\""],
253*38e8c45fSAndroid Build Coastguard Worker    version_script: "libGLESv1_CM.map.txt",
254*38e8c45fSAndroid Build Coastguard Worker}
255*38e8c45fSAndroid Build Coastguard Worker
256*38e8c45fSAndroid Build Coastguard Worker//##############################################################################
257*38e8c45fSAndroid Build Coastguard Worker// Build the wrapper OpenGL ES 2.x library
258*38e8c45fSAndroid Build Coastguard Worker//
259*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
260*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv2",
261*38e8c45fSAndroid Build Coastguard Worker    defaults: ["gles_libs_defaults"],
262*38e8c45fSAndroid Build Coastguard Worker    llndk: {
263*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libGLESv2.map.txt",
264*38e8c45fSAndroid Build Coastguard Worker        export_llndk_headers: ["gl_headers"],
265*38e8c45fSAndroid Build Coastguard Worker        // Don't export EGL/include from the LLNDK variant.
266*38e8c45fSAndroid Build Coastguard Worker        override_export_include_dirs: [],
267*38e8c45fSAndroid Build Coastguard Worker    },
268*38e8c45fSAndroid Build Coastguard Worker    srcs: ["GLES2/gl2.cpp"],
269*38e8c45fSAndroid Build Coastguard Worker    cflags: ["-DLOG_TAG=\"libGLESv2\""],
270*38e8c45fSAndroid Build Coastguard Worker
271*38e8c45fSAndroid Build Coastguard Worker    // Bug: http://b/133874658  Disable native_coverage as we investigate a
272*38e8c45fSAndroid Build Coastguard Worker    // crash in surfaceflinger on coverage-enabled cuttlefish builds.
273*38e8c45fSAndroid Build Coastguard Worker    native_coverage: false,
274*38e8c45fSAndroid Build Coastguard Worker}
275*38e8c45fSAndroid Build Coastguard Worker
276*38e8c45fSAndroid Build Coastguard Worker//##############################################################################
277*38e8c45fSAndroid Build Coastguard Worker// Build the wrapper OpenGL ES 3.x library (this is just different name for v2)
278*38e8c45fSAndroid Build Coastguard Worker//
279*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
280*38e8c45fSAndroid Build Coastguard Worker    name: "libGLESv3",
281*38e8c45fSAndroid Build Coastguard Worker    defaults: ["gles_libs_defaults"],
282*38e8c45fSAndroid Build Coastguard Worker    llndk: {
283*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libGLESv3.map.txt",
284*38e8c45fSAndroid Build Coastguard Worker        export_llndk_headers: ["gl_headers"],
285*38e8c45fSAndroid Build Coastguard Worker        // Don't export EGL/include from the LLNDK variant.
286*38e8c45fSAndroid Build Coastguard Worker        override_export_include_dirs: [],
287*38e8c45fSAndroid Build Coastguard Worker    },
288*38e8c45fSAndroid Build Coastguard Worker    srcs: ["GLES2/gl2.cpp"],
289*38e8c45fSAndroid Build Coastguard Worker    cflags: ["-DLOG_TAG=\"libGLESv3\""],
290*38e8c45fSAndroid Build Coastguard Worker}
291