• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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