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