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