|  | // Build the ETC1 library | 
|  | cc_library { | 
|  | name: "libETC1", | 
|  | srcs: ["ETC1/etc1.cpp"], | 
|  | host_supported: true, | 
|  |  | 
|  | target: { | 
|  | android: { | 
|  | static: { | 
|  | enabled: false, | 
|  | }, | 
|  | }, | 
|  | host: { | 
|  | shared: { | 
|  | enabled: false, | 
|  | }, | 
|  | }, | 
|  | windows: { | 
|  | enabled: true, | 
|  | }, | 
|  | }, | 
|  | } | 
|  |  | 
|  | // The headers modules are in frameworks/native/opengl/Android.bp. | 
|  | ndk_library { | 
|  | name: "libEGL", | 
|  | symbol_file: "libEGL.map.txt", | 
|  | first_version: "9", | 
|  | unversioned_until: "current", | 
|  | } | 
|  |  | 
|  | ndk_library { | 
|  | name: "libGLESv1_CM", | 
|  | symbol_file: "libGLESv1_CM.map.txt", | 
|  | first_version: "9", | 
|  | unversioned_until: "current", | 
|  | } | 
|  |  | 
|  | ndk_library { | 
|  | name: "libGLESv2", | 
|  | symbol_file: "libGLESv2.map.txt", | 
|  | first_version: "9", | 
|  | unversioned_until: "current", | 
|  | } | 
|  |  | 
|  | ndk_library { | 
|  | name: "libGLESv3", | 
|  | symbol_file: "libGLESv3.map.txt", | 
|  | first_version: "18", | 
|  | unversioned_until: "current", | 
|  | } | 
|  |  | 
|  | cc_defaults { | 
|  | name: "gl_libs_defaults", | 
|  | cflags: [ | 
|  | "-DGL_GLEXT_PROTOTYPES", | 
|  | "-DEGL_EGLEXT_PROTOTYPES", | 
|  | "-fvisibility=hidden", | 
|  | ], | 
|  | shared_libs: [ | 
|  | // ***** DO NOT ADD NEW DEPENDENCIES HERE ***** | 
|  | // In particular, DO NOT add libutils or anything "above" libcutils | 
|  | "libcutils", | 
|  | "liblog", | 
|  | "libdl", | 
|  | ], | 
|  |  | 
|  | // we need to access the private Bionic header <bionic_tls.h> | 
|  | include_dirs: ["bionic/libc/private"], | 
|  | } | 
|  |  | 
|  | //############################################################################## | 
|  | // Build META EGL library | 
|  | // | 
|  | cc_defaults { | 
|  | name: "egl_libs_defaults", | 
|  | defaults: ["gl_libs_defaults"], | 
|  | cflags: [ | 
|  | "-DLOG_TAG=\"libEGL\"", | 
|  | ], | 
|  | shared_libs: [ | 
|  | // ***** DO NOT ADD NEW DEPENDENCIES HERE ***** | 
|  | // In particular, DO NOT add libutils nor anything "above" libui | 
|  | "libui", | 
|  | "libnativewindow", | 
|  | "libbacktrace", | 
|  | ], | 
|  | } | 
|  |  | 
|  | cc_library_static { | 
|  | name: "libEGL_getProcAddress", | 
|  | defaults: ["egl_libs_defaults"], | 
|  | srcs: ["EGL/getProcAddress.cpp"], | 
|  | arch: { | 
|  | arm: { | 
|  | instruction_set: "arm", | 
|  | }, | 
|  | }, | 
|  | } | 
|  |  | 
|  | cc_library_shared { | 
|  | name: "libEGL", | 
|  | defaults: ["egl_libs_defaults"], | 
|  | srcs: [ | 
|  | "EGL/egl_tls.cpp", | 
|  | "EGL/egl_cache.cpp", | 
|  | "EGL/egl_display.cpp", | 
|  | "EGL/egl_object.cpp", | 
|  | "EGL/egl.cpp", | 
|  | "EGL/eglApi.cpp", | 
|  | "EGL/Loader.cpp", | 
|  | "EGL/BlobCache.cpp", | 
|  | ], | 
|  | static_libs: ["libEGL_getProcAddress"], | 
|  | ldflags: ["-Wl,--exclude-libs=ALL"], | 
|  | export_include_dirs: ["EGL/include"], | 
|  | } | 
|  |  | 
|  | cc_test { | 
|  | name: "libEGL_test", | 
|  | defaults: ["egl_libs_defaults"], | 
|  | srcs: [ | 
|  | "EGL/BlobCache.cpp", | 
|  | "EGL/BlobCache_test.cpp", | 
|  | ], | 
|  | } | 
|  |  | 
|  | cc_defaults { | 
|  | name: "gles_libs_defaults", | 
|  | defaults: ["gl_libs_defaults"], | 
|  | arch: { | 
|  | arm: { | 
|  | instruction_set: "arm", | 
|  |  | 
|  | // TODO: This is to work around b/20093774. Remove after root cause is fixed | 
|  | ldflags: ["-Wl,--hash-style,both"], | 
|  | }, | 
|  | }, | 
|  | shared_libs: ["libEGL"], | 
|  | } | 
|  |  | 
|  | //############################################################################## | 
|  | // Build the wrapper OpenGL ES 1.x library | 
|  | // | 
|  | cc_library_shared { | 
|  | name: "libGLESv1_CM", | 
|  | defaults: ["gles_libs_defaults"], | 
|  | srcs: ["GLES_CM/gl.cpp"], | 
|  | cflags: ["-DLOG_TAG=\"libGLESv1\""], | 
|  | } | 
|  |  | 
|  | //############################################################################## | 
|  | // Build the wrapper OpenGL ES 2.x library | 
|  | // | 
|  | cc_library_shared { | 
|  | name: "libGLESv2", | 
|  | defaults: ["gles_libs_defaults"], | 
|  | srcs: ["GLES2/gl2.cpp"], | 
|  | cflags: ["-DLOG_TAG=\"libGLESv2\""], | 
|  | } | 
|  |  | 
|  | //############################################################################## | 
|  | // Build the wrapper OpenGL ES 3.x library (this is just different name for v2) | 
|  | // | 
|  | cc_library_shared { | 
|  | name: "libGLESv3", | 
|  | defaults: ["gles_libs_defaults"], | 
|  | srcs: ["GLES2/gl2.cpp"], | 
|  | cflags: ["-DLOG_TAG=\"libGLESv3\""], | 
|  | } |