1// Build the ETC1 library 2cc_library { 3 name: "libETC1", 4 srcs: ["ETC1/etc1.cpp"], 5 host_supported: true, 6 cflags: ["-Wall", "-Werror"], 7 8 target: { 9 android: { 10 static: { 11 enabled: false, 12 }, 13 }, 14 host: { 15 shared: { 16 enabled: false, 17 }, 18 }, 19 windows: { 20 enabled: true, 21 }, 22 }, 23} 24 25// The headers modules are in frameworks/native/opengl/Android.bp. 26ndk_library { 27 name: "libEGL", 28 symbol_file: "libEGL.map.txt", 29 first_version: "9", 30 unversioned_until: "current", 31} 32 33ndk_library { 34 name: "libGLESv1_CM", 35 symbol_file: "libGLESv1_CM.map.txt", 36 first_version: "9", 37 unversioned_until: "current", 38} 39 40ndk_library { 41 name: "libGLESv2", 42 symbol_file: "libGLESv2.map.txt", 43 first_version: "9", 44 unversioned_until: "current", 45} 46 47ndk_library { 48 name: "libGLESv3", 49 symbol_file: "libGLESv3.map.txt", 50 first_version: "18", 51 unversioned_until: "current", 52} 53 54cc_defaults { 55 name: "gl_libs_defaults", 56 cflags: [ 57 "-DGL_GLEXT_PROTOTYPES", 58 "-DEGL_EGLEXT_PROTOTYPES", 59 "-fvisibility=hidden", 60 "-Wall", 61 "-Werror", 62 "-Wno-unused-variable", 63 ], 64 shared_libs: [ 65 // ***** DO NOT ADD NEW DEPENDENCIES HERE ***** 66 // In particular, DO NOT add libutils or anything "above" libcutils 67 "libcutils", 68 "liblog", 69 "libdl", 70 ], 71 static_libs: [ 72 "libarect", 73 ], 74 header_libs: [ 75 "gl_headers", 76 "libsystem_headers", 77 "libhardware_headers", 78 "libnativebase_headers", 79 ], 80 export_header_lib_headers: ["gl_headers"], 81 82 // we need to access the private Bionic header <bionic_tls.h> 83 include_dirs: ["bionic/libc/private"], 84} 85 86//############################################################################## 87// Build META EGL library 88// 89cc_defaults { 90 name: "egl_libs_defaults", 91 defaults: ["gl_libs_defaults"], 92 cflags: [ 93 "-DLOG_TAG=\"libEGL\"", 94 "-Wall", 95 "-Werror", 96 "-Wno-error=deprecated-register", 97 "-Wno-error=unknown-attributes", 98 "-Wno-unused-variable", 99 ], 100 shared_libs: [ 101 // ***** DO NOT ADD NEW DEPENDENCIES HERE ***** 102 // In particular, DO NOT add libutils nor anything "above" libui 103 "libgraphicsenv", 104 "libnativewindow", 105 "libbacktrace", 106 ], 107 target: { 108 vendor: { 109 exclude_shared_libs: ["libgraphicsenv"], 110 }, 111 }, 112} 113 114cc_library_static { 115 name: "libEGL_getProcAddress", 116 defaults: ["egl_libs_defaults"], 117 srcs: ["EGL/getProcAddress.cpp"], 118 arch: { 119 arm: { 120 instruction_set: "arm", 121 }, 122 }, 123} 124 125cc_library_static { 126 name: "libEGL_blobCache", 127 defaults: ["egl_libs_defaults"], 128 srcs: [ 129 "EGL/BlobCache.cpp", 130 "EGL/FileBlobCache.cpp", 131 ], 132 export_include_dirs: ["EGL"], 133} 134 135cc_library_shared { 136 name: "libEGL", 137 defaults: ["egl_libs_defaults"], 138 srcs: [ 139 "EGL/egl_tls.cpp", 140 "EGL/egl_cache.cpp", 141 "EGL/egl_display.cpp", 142 "EGL/egl_object.cpp", 143 "EGL/egl_layers.cpp", 144 "EGL/egl.cpp", 145 "EGL/eglApi.cpp", 146 "EGL/egl_platform_entries.cpp", 147 "EGL/Loader.cpp", 148 "EGL/egl_angle_platform.cpp", 149 ], 150 shared_libs: [ 151 "libvndksupport", 152 "android.hardware.configstore@1.0", 153 "android.hardware.configstore-utils", 154 "libbase", 155 "libhidlbase", 156 "libhidltransport", 157 "libnativebridge_lazy", 158 "libnativeloader_lazy", 159 "libutils", 160 ], 161 static_libs: [ 162 "libEGL_getProcAddress", 163 "libEGL_blobCache", 164 ], 165 ldflags: ["-Wl,--exclude-libs=ALL"], 166 export_include_dirs: ["EGL/include"], 167} 168 169cc_test { 170 name: "libEGL_test", 171 defaults: ["egl_libs_defaults"], 172 srcs: [ 173 "EGL/BlobCache.cpp", 174 "EGL/BlobCache_test.cpp", 175 ], 176} 177 178cc_defaults { 179 name: "gles_libs_defaults", 180 defaults: ["gl_libs_defaults"], 181 arch: { 182 arm: { 183 instruction_set: "arm", 184 185 // TODO: This is to work around b/20093774. Remove after root cause is fixed 186 ldflags: ["-Wl,--hash-style,both"], 187 }, 188 }, 189 shared_libs: ["libEGL"], 190} 191 192//############################################################################## 193// Build the wrapper OpenGL ES 1.x library 194// 195cc_library_shared { 196 name: "libGLESv1_CM", 197 defaults: ["gles_libs_defaults"], 198 srcs: ["GLES_CM/gl.cpp"], 199 cflags: ["-DLOG_TAG=\"libGLESv1\""], 200 version_script: "libGLESv1_CM.map.txt", 201} 202 203//############################################################################## 204// Build the wrapper OpenGL ES 2.x library 205// 206cc_library_shared { 207 name: "libGLESv2", 208 defaults: ["gles_libs_defaults"], 209 srcs: ["GLES2/gl2.cpp"], 210 cflags: ["-DLOG_TAG=\"libGLESv2\""], 211 212 // Bug: http://b/133874658 Disable native_coverage as we investigate a 213 // crash in surfaceflinger on coverage-enabled cuttlefish builds. 214 native_coverage: false, 215} 216 217//############################################################################## 218// Build the wrapper OpenGL ES 3.x library (this is just different name for v2) 219// 220cc_library_shared { 221 name: "libGLESv3", 222 defaults: ["gles_libs_defaults"], 223 srcs: ["GLES2/gl2.cpp"], 224 cflags: ["-DLOG_TAG=\"libGLESv3\""], 225} 226