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