# Copyright 2014 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

util_sources = [
  "util/com_utils.h",
  "util/keyboard.h",
  "util/geometry_utils.cpp",
  "util/geometry_utils.h",
  "util/mouse.h",
  "util/random_utils.cpp",
  "util/random_utils.h",
  "util/shader_utils.cpp",
  "util/shader_utils.h",
  "util/test_utils.cpp",
  "util/test_utils.h",
  "util/util_export.h",
  "util/util_gl.h",
  "util/Event.h",
  "util/EGLPlatformParameters.h",
  "util/EGLWindow.cpp",
  "util/EGLWindow.h",
  "util/Matrix.cpp",
  "util/Matrix.h",
  "util/OSPixmap.h",
  "util/OSWindow.cpp",
  "util/OSWindow.h",
  "util/Timer.h",
  "util/Timer.cpp",
]

util_win_sources = [
  "util/windows/test_utils_win.cpp",
  "util/windows/win32/test_utils_win32.cpp",
  "util/windows/win32/Win32Pixmap.cpp",
  "util/windows/win32/Win32Pixmap.h",
  "util/windows/win32/Win32Window.cpp",
  "util/windows/win32/Win32Window.h",
  "util/windows/WGLWindow.h",
]

if (current_os != "winuwp") {
  util_win_shared_sources = [ "util/windows/WGLWindow.cpp" ]
}

util_posix_sources = [
  "util/posix/crash_handler_posix.cpp",
  "util/posix/test_utils_posix.cpp",
]

util_linux_sources = util_posix_sources

util_x11_sources = [
  "util/x11/X11Pixmap.cpp",
  "util/x11/X11Pixmap.h",
  "util/x11/X11Window.cpp",
  "util/x11/X11Window.h",
]

util_fuchsia_sources = util_posix_sources + [
                         "util/fuchsia/ScenicWindow.cpp",
                         "util/fuchsia/ScenicWindow.h",
                       ]

util_ozone_sources = [
  "util/ozone/OzonePixmap.cpp",
  "util/ozone/OzoneWindow.cpp",
  "util/ozone/OzoneWindow.h",
]

util_osx_sources = util_posix_sources + [
                     "util/osx/OSXPixmap.mm",
                     "util/osx/OSXPixmap.h",
                     "util/osx/OSXWindow.mm",
                     "util/osx/OSXWindow.h",
                   ]

util_android_sources = util_posix_sources + [
                         "util/android/AndroidPixmap.cpp",
                         "util/android/AndroidWindow.cpp",
                         "util/android/AndroidWindow.h",
                         "util/android/third_party/android_native_app_glue.c",
                         "util/android/third_party/android_native_app_glue.h",
                       ]
