xref: /aosp_15_r20/external/angle/util/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2019 The ANGLE Project Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("../gni/angle.gni")
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker_util_sources = [
8*8975f5c5SAndroid Build Coastguard Worker  "EGLPlatformParameters.h",
9*8975f5c5SAndroid Build Coastguard Worker  "EGLWindow.cpp",
10*8975f5c5SAndroid Build Coastguard Worker  "EGLWindow.h",
11*8975f5c5SAndroid Build Coastguard Worker  "Event.h",
12*8975f5c5SAndroid Build Coastguard Worker  "Matrix.cpp",
13*8975f5c5SAndroid Build Coastguard Worker  "Matrix.h",
14*8975f5c5SAndroid Build Coastguard Worker  "OSPixmap.h",
15*8975f5c5SAndroid Build Coastguard Worker  "OSWindow.cpp",
16*8975f5c5SAndroid Build Coastguard Worker  "OSWindow.h",
17*8975f5c5SAndroid Build Coastguard Worker  "autogen/angle_features_autogen.cpp",
18*8975f5c5SAndroid Build Coastguard Worker  "autogen/angle_features_autogen.h",
19*8975f5c5SAndroid Build Coastguard Worker  "com_utils.h",
20*8975f5c5SAndroid Build Coastguard Worker  "geometry_utils.cpp",
21*8975f5c5SAndroid Build Coastguard Worker  "geometry_utils.h",
22*8975f5c5SAndroid Build Coastguard Worker  "keyboard.h",
23*8975f5c5SAndroid Build Coastguard Worker  "mouse.h",
24*8975f5c5SAndroid Build Coastguard Worker  "random_utils.cpp",
25*8975f5c5SAndroid Build Coastguard Worker  "random_utils.h",
26*8975f5c5SAndroid Build Coastguard Worker  "shader_utils.cpp",
27*8975f5c5SAndroid Build Coastguard Worker  "shader_utils.h",
28*8975f5c5SAndroid Build Coastguard Worker  "util_export.h",
29*8975f5c5SAndroid Build Coastguard Worker  "util_gl.h",
30*8975f5c5SAndroid Build Coastguard Worker]
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard Workerif (is_win) {
33*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "windows/WGLWindow.h" ]
34*8975f5c5SAndroid Build Coastguard Worker  if (!angle_is_winuwp) {
35*8975f5c5SAndroid Build Coastguard Worker    _util_sources += [
36*8975f5c5SAndroid Build Coastguard Worker      "windows/win32/Win32Pixmap.cpp",
37*8975f5c5SAndroid Build Coastguard Worker      "windows/win32/Win32Pixmap.h",
38*8975f5c5SAndroid Build Coastguard Worker      "windows/win32/Win32Window.cpp",
39*8975f5c5SAndroid Build Coastguard Worker      "windows/win32/Win32Window.h",
40*8975f5c5SAndroid Build Coastguard Worker    ]
41*8975f5c5SAndroid Build Coastguard Worker  }
42*8975f5c5SAndroid Build Coastguard Worker}
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Workerif (is_linux) {
45*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
46*8975f5c5SAndroid Build Coastguard Worker    "display/DisplayPixmap.cpp",
47*8975f5c5SAndroid Build Coastguard Worker    "display/DisplayWindow.cpp",
48*8975f5c5SAndroid Build Coastguard Worker    "display/DisplayWindow.h",
49*8975f5c5SAndroid Build Coastguard Worker  ]
50*8975f5c5SAndroid Build Coastguard Worker}
51*8975f5c5SAndroid Build Coastguard Worker
52*8975f5c5SAndroid Build Coastguard Workerif (angle_use_x11) {
53*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
54*8975f5c5SAndroid Build Coastguard Worker    "linux/x11/X11Pixmap.cpp",
55*8975f5c5SAndroid Build Coastguard Worker    "linux/x11/X11Pixmap.h",
56*8975f5c5SAndroid Build Coastguard Worker    "linux/x11/X11Window.cpp",
57*8975f5c5SAndroid Build Coastguard Worker    "linux/x11/X11Window.h",
58*8975f5c5SAndroid Build Coastguard Worker  ]
59*8975f5c5SAndroid Build Coastguard Worker}
60*8975f5c5SAndroid Build Coastguard Worker
61*8975f5c5SAndroid Build Coastguard Workerif (angle_use_wayland) {
62*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
63*8975f5c5SAndroid Build Coastguard Worker    "linux/wayland/WaylandWindow.cpp",
64*8975f5c5SAndroid Build Coastguard Worker    "linux/wayland/WaylandWindow.h",
65*8975f5c5SAndroid Build Coastguard Worker  ]
66*8975f5c5SAndroid Build Coastguard Worker}
67*8975f5c5SAndroid Build Coastguard Worker
68*8975f5c5SAndroid Build Coastguard Workerif (angle_use_x11 || angle_use_wayland) {
69*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "linux/LinuxWindow.cpp" ]
70*8975f5c5SAndroid Build Coastguard Worker}
71*8975f5c5SAndroid Build Coastguard Worker
72*8975f5c5SAndroid Build Coastguard Workerif (is_fuchsia) {
73*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
74*8975f5c5SAndroid Build Coastguard Worker    "fuchsia/FuchsiaPixmap.cpp",
75*8975f5c5SAndroid Build Coastguard Worker    "fuchsia/FuchsiaPixmap.h",
76*8975f5c5SAndroid Build Coastguard Worker    "fuchsia/ScenicWindow.cpp",
77*8975f5c5SAndroid Build Coastguard Worker    "fuchsia/ScenicWindow.h",
78*8975f5c5SAndroid Build Coastguard Worker  ]
79*8975f5c5SAndroid Build Coastguard Worker} else if (use_ozone && !(angle_use_x11 || angle_use_wayland)) {
80*8975f5c5SAndroid Build Coastguard Worker  # Use X11 impl by default otherwise switch to fake Ozone impl that does not
81*8975f5c5SAndroid Build Coastguard Worker  # seem to do anything real.
82*8975f5c5SAndroid Build Coastguard Worker  # TODO(msisov): probably, we need to have a proper support for different
83*8975f5c5SAndroid Build Coastguard Worker  # Ozone backends, and be able to switch between them for proper tests.
84*8975f5c5SAndroid Build Coastguard Worker  # For example, Wayland, X11, etc.
85*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
86*8975f5c5SAndroid Build Coastguard Worker    "ozone/OzonePixmap.cpp",
87*8975f5c5SAndroid Build Coastguard Worker    "ozone/OzoneWindow.cpp",
88*8975f5c5SAndroid Build Coastguard Worker    "ozone/OzoneWindow.h",
89*8975f5c5SAndroid Build Coastguard Worker  ]
90*8975f5c5SAndroid Build Coastguard Worker}
91*8975f5c5SAndroid Build Coastguard Worker
92*8975f5c5SAndroid Build Coastguard Workerif (is_mac) {
93*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
94*8975f5c5SAndroid Build Coastguard Worker    "osx/OSXPixmap.h",
95*8975f5c5SAndroid Build Coastguard Worker    "osx/OSXPixmap.mm",
96*8975f5c5SAndroid Build Coastguard Worker    "osx/OSXWindow.h",
97*8975f5c5SAndroid Build Coastguard Worker    "osx/OSXWindow.mm",
98*8975f5c5SAndroid Build Coastguard Worker  ]
99*8975f5c5SAndroid Build Coastguard Worker}
100*8975f5c5SAndroid Build Coastguard Worker
101*8975f5c5SAndroid Build Coastguard Workerif (is_ios) {
102*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
103*8975f5c5SAndroid Build Coastguard Worker    "ios/IOSPixmap.h",
104*8975f5c5SAndroid Build Coastguard Worker    "ios/IOSPixmap.mm",
105*8975f5c5SAndroid Build Coastguard Worker    "ios/IOSWindow.h",
106*8975f5c5SAndroid Build Coastguard Worker    "ios/IOSWindow.mm",
107*8975f5c5SAndroid Build Coastguard Worker  ]
108*8975f5c5SAndroid Build Coastguard Worker}
109*8975f5c5SAndroid Build Coastguard Worker
110*8975f5c5SAndroid Build Coastguard Workerif (is_android) {
111*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [
112*8975f5c5SAndroid Build Coastguard Worker    "android/AndroidPixmap.cpp",
113*8975f5c5SAndroid Build Coastguard Worker    "android/AndroidWindow.cpp",
114*8975f5c5SAndroid Build Coastguard Worker    "android/AndroidWindow.h",
115*8975f5c5SAndroid Build Coastguard Worker    "android/third_party/android_native_app_glue.c",
116*8975f5c5SAndroid Build Coastguard Worker    "android/third_party/android_native_app_glue.h",
117*8975f5c5SAndroid Build Coastguard Worker  ]
118*8975f5c5SAndroid Build Coastguard Worker}
119*8975f5c5SAndroid Build Coastguard Worker
120*8975f5c5SAndroid Build Coastguard Worker# Backtrace utils
121*8975f5c5SAndroid Build Coastguard Workerif (is_linux) {
122*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "linux/linux_backtrace.cpp" ]
123*8975f5c5SAndroid Build Coastguard Worker}
124*8975f5c5SAndroid Build Coastguard Worker
125*8975f5c5SAndroid Build Coastguard Workerif (is_fuchsia) {
126*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "fuchsia/fuchsia_backtrace.cpp" ]
127*8975f5c5SAndroid Build Coastguard Worker}
128*8975f5c5SAndroid Build Coastguard Worker
129*8975f5c5SAndroid Build Coastguard Workerif (is_ios) {
130*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "ios/ios_backtrace.cpp" ]
131*8975f5c5SAndroid Build Coastguard Worker}
132*8975f5c5SAndroid Build Coastguard Worker
133*8975f5c5SAndroid Build Coastguard Workerif (is_mac) {
134*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "osx/osx_backtrace.cpp" ]
135*8975f5c5SAndroid Build Coastguard Worker}
136*8975f5c5SAndroid Build Coastguard Worker
137*8975f5c5SAndroid Build Coastguard Workerif (is_android) {
138*8975f5c5SAndroid Build Coastguard Worker  _util_sources += [ "android/android_backtrace.cpp" ]
139*8975f5c5SAndroid Build Coastguard Worker}
140*8975f5c5SAndroid Build Coastguard Worker
141*8975f5c5SAndroid Build Coastguard Workerconfig("angle_util_loader_config") {
142*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ANGLE_USE_UTIL_LOADER" ]
143*8975f5c5SAndroid Build Coastguard Worker}
144*8975f5c5SAndroid Build Coastguard Worker
145*8975f5c5SAndroid Build Coastguard Workerconfig("angle_util_loader_headers_config") {
146*8975f5c5SAndroid Build Coastguard Worker  # Force users to include "util/header.h" instead of just "header.h".
147*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ ".." ]
148*8975f5c5SAndroid Build Coastguard Worker}
149*8975f5c5SAndroid Build Coastguard Worker
150*8975f5c5SAndroid Build Coastguard Workerangle_source_set("angle_util_loader_headers") {
151*8975f5c5SAndroid Build Coastguard Worker  testonly = true
152*8975f5c5SAndroid Build Coastguard Worker  sources = [
153*8975f5c5SAndroid Build Coastguard Worker    "egl_loader_autogen.h",
154*8975f5c5SAndroid Build Coastguard Worker    "gles_loader_autogen.h",
155*8975f5c5SAndroid Build Coastguard Worker    "util_export.h",
156*8975f5c5SAndroid Build Coastguard Worker  ]
157*8975f5c5SAndroid Build Coastguard Worker
158*8975f5c5SAndroid Build Coastguard Worker  if (is_win && !angle_is_winuwp) {
159*8975f5c5SAndroid Build Coastguard Worker    sources += [ "windows/wgl_loader_autogen.h" ]
160*8975f5c5SAndroid Build Coastguard Worker  }
161*8975f5c5SAndroid Build Coastguard Worker
162*8975f5c5SAndroid Build Coastguard Worker  public_deps = [ "$angle_root:includes" ]
163*8975f5c5SAndroid Build Coastguard Worker
164*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":angle_util_loader_headers_config" ]
165*8975f5c5SAndroid Build Coastguard Worker}
166*8975f5c5SAndroid Build Coastguard Worker
167*8975f5c5SAndroid Build Coastguard Workerangle_source_set("angle_util_loader") {
168*8975f5c5SAndroid Build Coastguard Worker  testonly = true
169*8975f5c5SAndroid Build Coastguard Worker  defines = [ "LIBANGLE_UTIL_IMPLEMENTATION" ]
170*8975f5c5SAndroid Build Coastguard Worker
171*8975f5c5SAndroid Build Coastguard Worker  sources = [
172*8975f5c5SAndroid Build Coastguard Worker    "egl_loader_autogen.cpp",
173*8975f5c5SAndroid Build Coastguard Worker    "gles_loader_autogen.cpp",
174*8975f5c5SAndroid Build Coastguard Worker  ]
175*8975f5c5SAndroid Build Coastguard Worker
176*8975f5c5SAndroid Build Coastguard Worker  if (is_win && !angle_is_winuwp) {
177*8975f5c5SAndroid Build Coastguard Worker    sources += [ "windows/wgl_loader_autogen.cpp" ]
178*8975f5c5SAndroid Build Coastguard Worker  }
179*8975f5c5SAndroid Build Coastguard Worker
180*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":angle_util_loader_headers" ]
181*8975f5c5SAndroid Build Coastguard Worker
182*8975f5c5SAndroid Build Coastguard Worker  public_configs += [
183*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:no_gl_prototypes",
184*8975f5c5SAndroid Build Coastguard Worker    ":angle_util_config",
185*8975f5c5SAndroid Build Coastguard Worker    ":angle_util_loader_config",
186*8975f5c5SAndroid Build Coastguard Worker    ":angle_util_loader_headers_config",
187*8975f5c5SAndroid Build Coastguard Worker  ]
188*8975f5c5SAndroid Build Coastguard Worker}
189*8975f5c5SAndroid Build Coastguard Worker
190*8975f5c5SAndroid Build Coastguard Workerconfig("angle_trace_loader_config") {
191*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "$angle_root/util/capture" ]
192*8975f5c5SAndroid Build Coastguard Worker}
193*8975f5c5SAndroid Build Coastguard Worker
194*8975f5c5SAndroid Build Coastguard Workerangle_shared_library("angle_trace_loader") {
195*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ANGLE_TRACE_LOADER_IMPLEMENTATION" ]
196*8975f5c5SAndroid Build Coastguard Worker
197*8975f5c5SAndroid Build Coastguard Worker  sources = [
198*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_egl_loader_autogen.cpp",
199*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_egl_loader_autogen.h",
200*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_gles_loader_autogen.cpp",
201*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_gles_loader_autogen.h",
202*8975f5c5SAndroid Build Coastguard Worker    "capture/traces_export.h",
203*8975f5c5SAndroid Build Coastguard Worker  ]
204*8975f5c5SAndroid Build Coastguard Worker  deps = [
205*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_common",
206*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_compression",
207*8975f5c5SAndroid Build Coastguard Worker  ]
208*8975f5c5SAndroid Build Coastguard Worker
209*8975f5c5SAndroid Build Coastguard Worker  public_configs += [
210*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:no_gl_prototypes",
211*8975f5c5SAndroid Build Coastguard Worker    ":angle_trace_loader_config",
212*8975f5c5SAndroid Build Coastguard Worker  ]
213*8975f5c5SAndroid Build Coastguard Worker}
214*8975f5c5SAndroid Build Coastguard Worker
215*8975f5c5SAndroid Build Coastguard Workerangle_source_set("angle_trace_fixture") {
216*8975f5c5SAndroid Build Coastguard Worker  testonly = true
217*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ANGLE_REPLAY_IMPLEMENTATION" ]
218*8975f5c5SAndroid Build Coastguard Worker  suppressed_configs += [ "$angle_root:constructor_and_destructor_warnings" ]
219*8975f5c5SAndroid Build Coastguard Worker  sources = [
220*8975f5c5SAndroid Build Coastguard Worker    "capture/angle_trace_gl.h",
221*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_fixture.cpp",
222*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_fixture.h",
223*8975f5c5SAndroid Build Coastguard Worker    "capture/trace_interface.h",
224*8975f5c5SAndroid Build Coastguard Worker  ]
225*8975f5c5SAndroid Build Coastguard Worker  public_deps = [
226*8975f5c5SAndroid Build Coastguard Worker    ":angle_trace_loader",
227*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:includes",
228*8975f5c5SAndroid Build Coastguard Worker  ]
229*8975f5c5SAndroid Build Coastguard Worker  if (is_ios) {
230*8975f5c5SAndroid Build Coastguard Worker    # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
231*8975f5c5SAndroid Build Coastguard Worker    check_includes = false
232*8975f5c5SAndroid Build Coastguard Worker  }
233*8975f5c5SAndroid Build Coastguard Worker}
234*8975f5c5SAndroid Build Coastguard Worker
235*8975f5c5SAndroid Build Coastguard Workerif (angle_has_frame_capture) {
236*8975f5c5SAndroid Build Coastguard Worker  config("angle_frame_capture_test_utils_config") {
237*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$angle_root/util/capture" ]
238*8975f5c5SAndroid Build Coastguard Worker  }
239*8975f5c5SAndroid Build Coastguard Worker
240*8975f5c5SAndroid Build Coastguard Worker  angle_source_set("angle_frame_capture_test_utils") {
241*8975f5c5SAndroid Build Coastguard Worker    testonly = true
242*8975f5c5SAndroid Build Coastguard Worker
243*8975f5c5SAndroid Build Coastguard Worker    if (restricted_traces_outside_of_apk) {
244*8975f5c5SAndroid Build Coastguard Worker      # On Android, if we are building the entire trace library,
245*8975f5c5SAndroid Build Coastguard Worker      # we need to load the libraries from outside the APK
246*8975f5c5SAndroid Build Coastguard Worker      defines = [ "ANGLE_TRACE_EXTERNAL_BINARIES" ]
247*8975f5c5SAndroid Build Coastguard Worker    }
248*8975f5c5SAndroid Build Coastguard Worker
249*8975f5c5SAndroid Build Coastguard Worker    sources = [
250*8975f5c5SAndroid Build Coastguard Worker      "capture/frame_capture_test_utils.cpp",
251*8975f5c5SAndroid Build Coastguard Worker      "capture/frame_capture_test_utils.h",
252*8975f5c5SAndroid Build Coastguard Worker      "capture/trace_interface.h",
253*8975f5c5SAndroid Build Coastguard Worker    ]
254*8975f5c5SAndroid Build Coastguard Worker    deps = [ "$angle_root/third_party/rapidjson" ]
255*8975f5c5SAndroid Build Coastguard Worker
256*8975f5c5SAndroid Build Coastguard Worker    public_configs += [ ":angle_frame_capture_test_utils_config" ]
257*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
258*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_capture_common",
259*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_common",
260*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_compression",
261*8975f5c5SAndroid Build Coastguard Worker    ]
262*8975f5c5SAndroid Build Coastguard Worker  }
263*8975f5c5SAndroid Build Coastguard Worker
264*8975f5c5SAndroid Build Coastguard Worker  angle_shared_library("angle_trace_interpreter") {
265*8975f5c5SAndroid Build Coastguard Worker    testonly = true
266*8975f5c5SAndroid Build Coastguard Worker    sources = [
267*8975f5c5SAndroid Build Coastguard Worker      "capture/frame_capture_replay_autogen.cpp",
268*8975f5c5SAndroid Build Coastguard Worker      "capture/trace_interpreter.cpp",
269*8975f5c5SAndroid Build Coastguard Worker      "capture/trace_interpreter.h",
270*8975f5c5SAndroid Build Coastguard Worker      "capture/trace_interpreter_autogen.cpp",
271*8975f5c5SAndroid Build Coastguard Worker    ]
272*8975f5c5SAndroid Build Coastguard Worker    deps = [
273*8975f5c5SAndroid Build Coastguard Worker      ":angle_frame_capture_test_utils",
274*8975f5c5SAndroid Build Coastguard Worker      ":angle_trace_fixture",
275*8975f5c5SAndroid Build Coastguard Worker      ":angle_trace_loader",
276*8975f5c5SAndroid Build Coastguard Worker    ]
277*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_REPLAY_IMPLEMENTATION" ]
278*8975f5c5SAndroid Build Coastguard Worker  }
279*8975f5c5SAndroid Build Coastguard Worker}
280*8975f5c5SAndroid Build Coastguard Worker
281*8975f5c5SAndroid Build Coastguard Workerconfig("angle_util_config") {
282*8975f5c5SAndroid Build Coastguard Worker  # Force users to include "util/header.h" instead of just "header.h".
283*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ ".." ]
284*8975f5c5SAndroid Build Coastguard Worker  if ((is_linux || is_chromeos) && angle_use_x11) {
285*8975f5c5SAndroid Build Coastguard Worker    libs = [ "X11" ]
286*8975f5c5SAndroid Build Coastguard Worker  }
287*8975f5c5SAndroid Build Coastguard Worker  configs = [ "$angle_root:angle_vulkan_wayland_config" ]
288*8975f5c5SAndroid Build Coastguard Worker}
289*8975f5c5SAndroid Build Coastguard Worker
290*8975f5c5SAndroid Build Coastguard Workerforeach(is_shared_library,
291*8975f5c5SAndroid Build Coastguard Worker        [
292*8975f5c5SAndroid Build Coastguard Worker          true,
293*8975f5c5SAndroid Build Coastguard Worker          false,
294*8975f5c5SAndroid Build Coastguard Worker        ]) {
295*8975f5c5SAndroid Build Coastguard Worker  if (is_shared_library) {
296*8975f5c5SAndroid Build Coastguard Worker    library_type = "angle_shared_library"
297*8975f5c5SAndroid Build Coastguard Worker    library_name = "angle_util"
298*8975f5c5SAndroid Build Coastguard Worker    dep_suffix = "${angle_libs_suffix}"
299*8975f5c5SAndroid Build Coastguard Worker  } else {
300*8975f5c5SAndroid Build Coastguard Worker    library_type = "angle_static_library"
301*8975f5c5SAndroid Build Coastguard Worker    library_name = "angle_util_static"
302*8975f5c5SAndroid Build Coastguard Worker    dep_suffix = "_static"
303*8975f5c5SAndroid Build Coastguard Worker  }
304*8975f5c5SAndroid Build Coastguard Worker
305*8975f5c5SAndroid Build Coastguard Worker  target(library_type, library_name) {
306*8975f5c5SAndroid Build Coastguard Worker    testonly = true
307*8975f5c5SAndroid Build Coastguard Worker    sources = _util_sources
308*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
309*8975f5c5SAndroid Build Coastguard Worker      ":angle_test_utils",
310*8975f5c5SAndroid Build Coastguard Worker      ":angle_util_loader_headers",
311*8975f5c5SAndroid Build Coastguard Worker    ]
312*8975f5c5SAndroid Build Coastguard Worker    libs = []
313*8975f5c5SAndroid Build Coastguard Worker
314*8975f5c5SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
315*8975f5c5SAndroid Build Coastguard Worker      libs += [
316*8975f5c5SAndroid Build Coastguard Worker        "rt",
317*8975f5c5SAndroid Build Coastguard Worker        "dl",
318*8975f5c5SAndroid Build Coastguard Worker      ]
319*8975f5c5SAndroid Build Coastguard Worker    }
320*8975f5c5SAndroid Build Coastguard Worker
321*8975f5c5SAndroid Build Coastguard Worker    if (is_apple) {
322*8975f5c5SAndroid Build Coastguard Worker      frameworks = [ "QuartzCore.framework" ]
323*8975f5c5SAndroid Build Coastguard Worker      if (is_mac) {
324*8975f5c5SAndroid Build Coastguard Worker        frameworks += [ "AppKit.framework" ]
325*8975f5c5SAndroid Build Coastguard Worker      }
326*8975f5c5SAndroid Build Coastguard Worker      if (is_ios) {
327*8975f5c5SAndroid Build Coastguard Worker        frameworks += [ "UIKit.framework" ]
328*8975f5c5SAndroid Build Coastguard Worker      }
329*8975f5c5SAndroid Build Coastguard Worker    }
330*8975f5c5SAndroid Build Coastguard Worker
331*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
332*8975f5c5SAndroid Build Coastguard Worker      libs += [
333*8975f5c5SAndroid Build Coastguard Worker        "android",
334*8975f5c5SAndroid Build Coastguard Worker        "log",
335*8975f5c5SAndroid Build Coastguard Worker      ]
336*8975f5c5SAndroid Build Coastguard Worker    }
337*8975f5c5SAndroid Build Coastguard Worker
338*8975f5c5SAndroid Build Coastguard Worker    configs += [ "$angle_root:debug_annotations_config" ]
339*8975f5c5SAndroid Build Coastguard Worker
340*8975f5c5SAndroid Build Coastguard Worker    public_configs += [ ":angle_util_config" ]
341*8975f5c5SAndroid Build Coastguard Worker
342*8975f5c5SAndroid Build Coastguard Worker    if (is_fuchsia) {
343*8975f5c5SAndroid Build Coastguard Worker      public_deps += [
344*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/common/fuchsia_egl",
345*8975f5c5SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.element",
346*8975f5c5SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp",
347*8975f5c5SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/pkg/async-loop-default",
348*8975f5c5SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/pkg/fdio",
349*8975f5c5SAndroid Build Coastguard Worker      ]
350*8975f5c5SAndroid Build Coastguard Worker    }
351*8975f5c5SAndroid Build Coastguard Worker
352*8975f5c5SAndroid Build Coastguard Worker    if (is_shared_library) {
353*8975f5c5SAndroid Build Coastguard Worker      defines = [ "LIBANGLE_UTIL_IMPLEMENTATION" ]
354*8975f5c5SAndroid Build Coastguard Worker
355*8975f5c5SAndroid Build Coastguard Worker      public_deps += [ ":angle_util_loader" ]
356*8975f5c5SAndroid Build Coastguard Worker
357*8975f5c5SAndroid Build Coastguard Worker      if ((is_mac || is_ios) && !is_component_build) {
358*8975f5c5SAndroid Build Coastguard Worker        ldflags = [
359*8975f5c5SAndroid Build Coastguard Worker          "-install_name",
360*8975f5c5SAndroid Build Coastguard Worker          "@rpath/libangle_util.dylib",
361*8975f5c5SAndroid Build Coastguard Worker        ]
362*8975f5c5SAndroid Build Coastguard Worker      }
363*8975f5c5SAndroid Build Coastguard Worker
364*8975f5c5SAndroid Build Coastguard Worker      # Currently excluded from the static build because of build issues.
365*8975f5c5SAndroid Build Coastguard Worker      # Would be nice if could be included.
366*8975f5c5SAndroid Build Coastguard Worker      if (is_win && !angle_is_winuwp) {
367*8975f5c5SAndroid Build Coastguard Worker        sources += [ "windows/WGLWindow.cpp" ]
368*8975f5c5SAndroid Build Coastguard Worker      }
369*8975f5c5SAndroid Build Coastguard Worker    } else {
370*8975f5c5SAndroid Build Coastguard Worker      public_configs += [
371*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:angle_static_config",
372*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:gl_prototypes",
373*8975f5c5SAndroid Build Coastguard Worker      ]
374*8975f5c5SAndroid Build Coastguard Worker    }
375*8975f5c5SAndroid Build Coastguard Worker  }
376*8975f5c5SAndroid Build Coastguard Worker}
377*8975f5c5SAndroid Build Coastguard Worker
378*8975f5c5SAndroid Build Coastguard Workerif (is_win && !angle_is_winuwp) {
379*8975f5c5SAndroid Build Coastguard Worker  angle_source_set("angle_stack_walker") {
380*8975f5c5SAndroid Build Coastguard Worker    sources = [
381*8975f5c5SAndroid Build Coastguard Worker      "windows/third_party/StackWalker/src/StackWalker.cpp",
382*8975f5c5SAndroid Build Coastguard Worker      "windows/third_party/StackWalker/src/StackWalker.h",
383*8975f5c5SAndroid Build Coastguard Worker    ]
384*8975f5c5SAndroid Build Coastguard Worker
385*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
386*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [
387*8975f5c5SAndroid Build Coastguard Worker        "-Wno-c++98-compat-extra-semi",
388*8975f5c5SAndroid Build Coastguard Worker        "-Wno-missing-declarations",
389*8975f5c5SAndroid Build Coastguard Worker        "-Wno-switch",
390*8975f5c5SAndroid Build Coastguard Worker      ]
391*8975f5c5SAndroid Build Coastguard Worker    } else {
392*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [ "/wd4740" ]
393*8975f5c5SAndroid Build Coastguard Worker    }
394*8975f5c5SAndroid Build Coastguard Worker  }
395*8975f5c5SAndroid Build Coastguard Worker}
396*8975f5c5SAndroid Build Coastguard Worker
397*8975f5c5SAndroid Build Coastguard Workerconfig("angle_png_utils_config") {
398*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ ".." ]
399*8975f5c5SAndroid Build Coastguard Worker}
400*8975f5c5SAndroid Build Coastguard Worker
401*8975f5c5SAndroid Build Coastguard Workerangle_source_set("angle_png_utils") {
402*8975f5c5SAndroid Build Coastguard Worker  deps = [ "$angle_libpng_dir" ]
403*8975f5c5SAndroid Build Coastguard Worker  sources = [
404*8975f5c5SAndroid Build Coastguard Worker    "png_utils.cpp",
405*8975f5c5SAndroid Build Coastguard Worker    "png_utils.h",
406*8975f5c5SAndroid Build Coastguard Worker  ]
407*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":angle_png_utils_config" ]
408*8975f5c5SAndroid Build Coastguard Worker}
409*8975f5c5SAndroid Build Coastguard Worker
410*8975f5c5SAndroid Build Coastguard Workerconfig("angle_test_util_config") {
411*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ ".." ]
412*8975f5c5SAndroid Build Coastguard Worker}
413*8975f5c5SAndroid Build Coastguard Worker
414*8975f5c5SAndroid Build Coastguard Workerangle_source_set("angle_test_utils") {
415*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":angle_test_util_config" ]
416*8975f5c5SAndroid Build Coastguard Worker
417*8975f5c5SAndroid Build Coastguard Worker  public_deps = [ "$angle_root:angle_common" ]
418*8975f5c5SAndroid Build Coastguard Worker  if (angle_use_wayland) {
419*8975f5c5SAndroid Build Coastguard Worker    public_deps += [ "$angle_root:angle_wayland" ]
420*8975f5c5SAndroid Build Coastguard Worker  }
421*8975f5c5SAndroid Build Coastguard Worker
422*8975f5c5SAndroid Build Coastguard Worker  deps = []
423*8975f5c5SAndroid Build Coastguard Worker  sources = [
424*8975f5c5SAndroid Build Coastguard Worker    "Timer.cpp",
425*8975f5c5SAndroid Build Coastguard Worker    "Timer.h",
426*8975f5c5SAndroid Build Coastguard Worker    "test_utils.cpp",
427*8975f5c5SAndroid Build Coastguard Worker    "test_utils.h",
428*8975f5c5SAndroid Build Coastguard Worker  ]
429*8975f5c5SAndroid Build Coastguard Worker
430*8975f5c5SAndroid Build Coastguard Worker  if (is_win) {
431*8975f5c5SAndroid Build Coastguard Worker    sources += [ "windows/test_utils_win.cpp" ]
432*8975f5c5SAndroid Build Coastguard Worker    if (angle_is_winuwp) {
433*8975f5c5SAndroid Build Coastguard Worker      sources += [ "windows/test_utils_winuwp.cpp" ]
434*8975f5c5SAndroid Build Coastguard Worker    } else {
435*8975f5c5SAndroid Build Coastguard Worker      deps += [ ":angle_stack_walker" ]
436*8975f5c5SAndroid Build Coastguard Worker      sources += [ "windows/win32/test_utils_win32.cpp" ]
437*8975f5c5SAndroid Build Coastguard Worker    }
438*8975f5c5SAndroid Build Coastguard Worker  } else {
439*8975f5c5SAndroid Build Coastguard Worker    sources += [
440*8975f5c5SAndroid Build Coastguard Worker      "posix/crash_handler_posix.cpp",
441*8975f5c5SAndroid Build Coastguard Worker      "posix/test_utils_posix.cpp",
442*8975f5c5SAndroid Build Coastguard Worker    ]
443*8975f5c5SAndroid Build Coastguard Worker  }
444*8975f5c5SAndroid Build Coastguard Worker}
445