blob: f664f2f3a65cdf23393bbb67fca36f3c1d01a5fe [file] [log] [blame]
Dan Willemsen59e086f2016-07-25 17:13:45 -07001// Build the ETC1 library
Bob Badour3306e492021-02-25 15:35:37 -08002package {
3 // See: http://go/android-license-faq
4 // A large-scale-change added 'default_applicable_licenses' to import
5 // all of the 'license_kinds' from "frameworks_native_license"
6 // to get the below license kinds:
7 // SPDX-license-identifier-Apache-2.0
8 default_applicable_licenses: ["frameworks_native_license"],
9}
10
Dan Willemsen59e086f2016-07-25 17:13:45 -070011cc_library {
12 name: "libETC1",
13 srcs: ["ETC1/etc1.cpp"],
14 host_supported: true,
Spandan Das4a5e3f22022-09-08 21:49:51 +000015 cflags: [
16 "-Wall",
17 "-Werror",
18 ],
Dan Willemsen59e086f2016-07-25 17:13:45 -070019
20 target: {
21 android: {
22 static: {
23 enabled: false,
24 },
25 },
26 host: {
27 shared: {
28 enabled: false,
29 },
30 },
31 windows: {
32 enabled: true,
33 },
34 },
35}
Dan Albert49fbff42016-10-03 12:36:00 -070036
Dan Albert7facb1d2016-10-03 12:36:00 -070037// The headers modules are in frameworks/native/opengl/Android.bp.
Dan Albert49fbff42016-10-03 12:36:00 -070038ndk_library {
Dan Willemsen219db6c2017-04-07 15:48:39 -070039 name: "libEGL",
Dan Albert49fbff42016-10-03 12:36:00 -070040 symbol_file: "libEGL.map.txt",
41 first_version: "9",
Dan Albertb9c62a62017-01-05 15:58:50 -080042 unversioned_until: "current",
Spandan Das4a5e3f22022-09-08 21:49:51 +000043 export_header_libs: [
44 "libEGL_headers",
45 ],
Dan Albert49fbff42016-10-03 12:36:00 -070046}
Dan Albert7facb1d2016-10-03 12:36:00 -070047
48ndk_library {
Dan Willemsen219db6c2017-04-07 15:48:39 -070049 name: "libGLESv1_CM",
Dan Albert7facb1d2016-10-03 12:36:00 -070050 symbol_file: "libGLESv1_CM.map.txt",
51 first_version: "9",
Dan Albertb9c62a62017-01-05 15:58:50 -080052 unversioned_until: "current",
Spandan Das4a5e3f22022-09-08 21:49:51 +000053 export_header_libs: [
54 "libGLESv1_CM_headers",
55 ],
Dan Albert7facb1d2016-10-03 12:36:00 -070056}
Dan Albert00500c72016-10-03 12:36:00 -070057
58ndk_library {
Dan Willemsen219db6c2017-04-07 15:48:39 -070059 name: "libGLESv2",
Dan Albert00500c72016-10-03 12:36:00 -070060 symbol_file: "libGLESv2.map.txt",
61 first_version: "9",
Dan Albertb9c62a62017-01-05 15:58:50 -080062 unversioned_until: "current",
Spandan Das4a5e3f22022-09-08 21:49:51 +000063 export_header_libs: [
64 "libGLESv2_headers",
65 ],
Dan Albert00500c72016-10-03 12:36:00 -070066}
Dan Albertd7d8efa2016-10-03 12:36:00 -070067
68ndk_library {
Dan Willemsen219db6c2017-04-07 15:48:39 -070069 name: "libGLESv3",
Dan Albertd7d8efa2016-10-03 12:36:00 -070070 symbol_file: "libGLESv3.map.txt",
71 first_version: "18",
Dan Albertb9c62a62017-01-05 15:58:50 -080072 unversioned_until: "current",
Spandan Das4a5e3f22022-09-08 21:49:51 +000073 export_header_libs: [
74 "libGLESv3_headers",
75 ],
Dan Albertd7d8efa2016-10-03 12:36:00 -070076}
Dan Willemsena3310632016-10-03 23:56:51 -070077
78cc_defaults {
79 name: "gl_libs_defaults",
80 cflags: [
81 "-DGL_GLEXT_PROTOTYPES",
82 "-DEGL_EGLEXT_PROTOTYPES",
83 "-fvisibility=hidden",
Chih-Hung Hsiehc60a0f02017-10-05 14:25:18 -070084 "-Wall",
85 "-Werror",
86 "-Wno-unused-variable",
Dan Willemsena3310632016-10-03 23:56:51 -070087 ],
88 shared_libs: [
Mathias Agopian5f1af042017-03-09 18:50:05 -080089 // ***** DO NOT ADD NEW DEPENDENCIES HERE *****
90 // In particular, DO NOT add libutils or anything "above" libcutils
Dan Willemsena3310632016-10-03 23:56:51 -070091 "libcutils",
92 "liblog",
93 "libdl",
94 ],
Jiyong Parka243e5d2017-06-21 12:26:51 +090095 static_libs: [
96 "libarect",
97 ],
98 header_libs: [
Christopher Ferrisddd1d6b2019-09-26 08:27:25 -070099 "bionic_libc_platform_headers",
Jiyong Parka243e5d2017-06-21 12:26:51 +0900100 "gl_headers",
101 "libsystem_headers",
Jiyong Parka243e5d2017-06-21 12:26:51 +0900102 "libnativebase_headers",
103 ],
104 export_header_lib_headers: ["gl_headers"],
Dan Willemsena3310632016-10-03 23:56:51 -0700105}
106
107//##############################################################################
108// Build META EGL library
109//
110cc_defaults {
111 name: "egl_libs_defaults",
112 defaults: ["gl_libs_defaults"],
113 cflags: [
114 "-DLOG_TAG=\"libEGL\"",
Chih-Hung Hsiehc60a0f02017-10-05 14:25:18 -0700115 "-Wall",
116 "-Werror",
117 "-Wno-error=deprecated-register",
118 "-Wno-error=unknown-attributes",
119 "-Wno-unused-variable",
Dan Willemsena3310632016-10-03 23:56:51 -0700120 ],
121 shared_libs: [
Mathias Agopian5f1af042017-03-09 18:50:05 -0800122 // ***** DO NOT ADD NEW DEPENDENCIES HERE *****
123 // In particular, DO NOT add libutils nor anything "above" libui
Jiyong Park27c39e12017-05-08 13:00:02 +0900124 "libgraphicsenv",
Mathias Agopian89ed4c82017-02-09 18:48:34 -0800125 "libnativewindow",
Michael Hoisie4e0f56b2020-04-30 18:40:55 -0400126 "libbase",
Dan Willemsena3310632016-10-03 23:56:51 -0700127 ],
128}
129
130cc_library_static {
131 name: "libEGL_getProcAddress",
132 defaults: ["egl_libs_defaults"],
133 srcs: ["EGL/getProcAddress.cpp"],
134 arch: {
135 arm: {
136 instruction_set: "arm",
137 },
138 },
139}
140
Stan Iliev9e7cd072017-10-09 15:56:10 -0400141cc_library_static {
142 name: "libEGL_blobCache",
143 defaults: ["egl_libs_defaults"],
144 srcs: [
145 "EGL/BlobCache.cpp",
146 "EGL/FileBlobCache.cpp",
147 ],
148 export_include_dirs: ["EGL"],
149}
150
Dan Willemsena3310632016-10-03 23:56:51 -0700151cc_library_shared {
152 name: "libEGL",
153 defaults: ["egl_libs_defaults"],
Colin Cross03943642021-04-21 16:47:25 -0700154 llndk: {
155 symbol_file: "libEGL.map.txt",
Colin Crossed0e6e62021-04-26 17:19:59 -0700156 export_llndk_headers: ["gl_headers"],
Colin Cross03943642021-04-21 16:47:25 -0700157 // Don't export EGL/include from the LLNDK variant.
158 override_export_include_dirs: [],
159 },
Dan Willemsena3310632016-10-03 23:56:51 -0700160 srcs: [
161 "EGL/egl_tls.cpp",
162 "EGL/egl_cache.cpp",
163 "EGL/egl_display.cpp",
164 "EGL/egl_object.cpp",
Cody Northrop629ce4e2018-10-15 07:22:09 -0600165 "EGL/egl_layers.cpp",
Dan Willemsena3310632016-10-03 23:56:51 -0700166 "EGL/egl.cpp",
Cody Northrop68d10352018-10-15 07:22:09 -0600167 "EGL/eglApi.cpp",
Cody Northrop0ec5d382018-10-15 07:22:07 -0600168 "EGL/egl_platform_entries.cpp",
Dan Willemsena3310632016-10-03 23:56:51 -0700169 "EGL/Loader.cpp",
Tobin Ehlis96a184d2018-07-18 16:14:07 -0600170 "EGL/egl_angle_platform.cpp",
Dan Willemsena3310632016-10-03 23:56:51 -0700171 ],
Courtney Goeltzenleuchter1b717022017-07-07 14:55:40 -0600172 shared_libs: [
173 "libvndksupport",
174 "android.hardware.configstore@1.0",
175 "android.hardware.configstore-utils",
Cody Northrop629ce4e2018-10-15 07:22:09 -0600176 "libbase",
Courtney Goeltzenleuchter1b717022017-07-07 14:55:40 -0600177 "libhidlbase",
Jiyong Parkbd1ddb22019-02-18 21:22:28 +0900178 "libnativebridge_lazy",
179 "libnativeloader_lazy",
Courtney Goeltzenleuchter1b717022017-07-07 14:55:40 -0600180 "libutils",
Sundong Ahn204fb1f2020-04-23 21:56:36 +0900181 "libSurfaceFlingerProp",
Christopher Ferrisdfb50b42022-03-23 12:37:58 -0700182 "libunwindstack",
Courtney Goeltzenleuchter1b717022017-07-07 14:55:40 -0600183 ],
Stan Iliev9e7cd072017-10-09 15:56:10 -0400184 static_libs: [
185 "libEGL_getProcAddress",
186 "libEGL_blobCache",
187 ],
Tao Wu8f054a62019-05-14 09:16:07 -0700188 ldflags: ["-Wl,--exclude-libs=ALL,--Bsymbolic-functions"],
Mathias Agopianb7f9a242017-03-08 22:29:31 -0800189 export_include_dirs: ["EGL/include"],
jorgegil@google.come8141512019-11-21 13:42:16 -0800190 stubs: {
191 symbol_file: "libEGL.map.txt",
192 versions: ["29"],
193 },
Sundong Ahn204fb1f2020-04-23 21:56:36 +0900194 header_libs: ["libsurfaceflinger_headers"],
Mathias Agopianb7f9a242017-03-08 22:29:31 -0800195}
196
197cc_test {
198 name: "libEGL_test",
199 defaults: ["egl_libs_defaults"],
200 srcs: [
201 "EGL/BlobCache.cpp",
202 "EGL/BlobCache_test.cpp",
203 ],
Dan Willemsena3310632016-10-03 23:56:51 -0700204}
205
206cc_defaults {
207 name: "gles_libs_defaults",
208 defaults: ["gl_libs_defaults"],
209 arch: {
210 arm: {
211 instruction_set: "arm",
212
213 // TODO: This is to work around b/20093774. Remove after root cause is fixed
214 ldflags: ["-Wl,--hash-style,both"],
215 },
216 },
217 shared_libs: ["libEGL"],
218}
219
220//##############################################################################
221// Build the wrapper OpenGL ES 1.x library
222//
223cc_library_shared {
224 name: "libGLESv1_CM",
225 defaults: ["gles_libs_defaults"],
Colin Cross03943642021-04-21 16:47:25 -0700226 llndk: {
227 symbol_file: "libGLESv1_CM.map.txt",
Colin Crossed0e6e62021-04-26 17:19:59 -0700228 export_llndk_headers: ["gl_headers"],
Colin Cross03943642021-04-21 16:47:25 -0700229 // Don't export EGL/include from the LLNDK variant.
230 override_export_include_dirs: [],
231 },
Dan Willemsena3310632016-10-03 23:56:51 -0700232 srcs: ["GLES_CM/gl.cpp"],
Dan Willemsena3310632016-10-03 23:56:51 -0700233 cflags: ["-DLOG_TAG=\"libGLESv1\""],
dimitry0b586e82018-12-11 14:33:30 +0100234 version_script: "libGLESv1_CM.map.txt",
Dan Willemsena3310632016-10-03 23:56:51 -0700235}
236
237//##############################################################################
238// Build the wrapper OpenGL ES 2.x library
239//
240cc_library_shared {
241 name: "libGLESv2",
242 defaults: ["gles_libs_defaults"],
Colin Cross03943642021-04-21 16:47:25 -0700243 llndk: {
244 symbol_file: "libGLESv2.map.txt",
Colin Crossed0e6e62021-04-26 17:19:59 -0700245 export_llndk_headers: ["gl_headers"],
Colin Cross03943642021-04-21 16:47:25 -0700246 // Don't export EGL/include from the LLNDK variant.
247 override_export_include_dirs: [],
248 },
Dan Willemsena3310632016-10-03 23:56:51 -0700249 srcs: ["GLES2/gl2.cpp"],
Dan Willemsena3310632016-10-03 23:56:51 -0700250 cflags: ["-DLOG_TAG=\"libGLESv2\""],
Pirama Arumuga Nainar5d7eb4f2019-05-29 15:17:53 -0700251
252 // Bug: http://b/133874658 Disable native_coverage as we investigate a
253 // crash in surfaceflinger on coverage-enabled cuttlefish builds.
254 native_coverage: false,
Dan Willemsena3310632016-10-03 23:56:51 -0700255}
256
257//##############################################################################
258// Build the wrapper OpenGL ES 3.x library (this is just different name for v2)
259//
260cc_library_shared {
261 name: "libGLESv3",
262 defaults: ["gles_libs_defaults"],
Colin Cross03943642021-04-21 16:47:25 -0700263 llndk: {
264 symbol_file: "libGLESv3.map.txt",
Colin Crossed0e6e62021-04-26 17:19:59 -0700265 export_llndk_headers: ["gl_headers"],
Colin Cross03943642021-04-21 16:47:25 -0700266 // Don't export EGL/include from the LLNDK variant.
267 override_export_include_dirs: [],
268 },
Dan Willemsena3310632016-10-03 23:56:51 -0700269 srcs: ["GLES2/gl2.cpp"],
Dan Willemsena3310632016-10-03 23:56:51 -0700270 cflags: ["-DLOG_TAG=\"libGLESv3\""],
271}