74b06275bb
Recent ANGLE changes require BUILD.gn updates to make use of new zlib functions as well as changes to SystemInfo that requires adding new source dictionaries to our list of build sources. Bug: skia:10391 Change-Id: I993a9f78e4585618ad4cd16b3bfc81874d7b5b17 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297116 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
163 lines
4.3 KiB
Plaintext
163 lines
4.3 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
declare_args() {
|
|
}
|
|
|
|
angle_root = "../externals/angle2"
|
|
|
|
import("$angle_root/src/compiler.gni")
|
|
import("$angle_root/src/libGLESv2.gni")
|
|
import("../third_party.gni")
|
|
|
|
third_party("angle2") {
|
|
public_include_dirs = [ "$angle_root/include" ]
|
|
deps = [
|
|
":libEGL",
|
|
":libGLESv2",
|
|
]
|
|
}
|
|
|
|
config("common") {
|
|
defines = [
|
|
"ANGLE_ENABLE_ESSL",
|
|
"ANGLE_ENABLE_GLSL",
|
|
"ANGLE_ENABLE_HLSL",
|
|
"ANGLE_ENABLE_OPENGL",
|
|
"EGL_EGLEXT_PROTOTYPES",
|
|
"GL_GLEXT_PROTOTYPES",
|
|
]
|
|
include_dirs = [
|
|
"$root_gen_dir/angle2",
|
|
"$angle_root/include",
|
|
"$angle_root/src",
|
|
"$angle_root/src/common/third_party/base",
|
|
"$angle_root/src/third_party/khronos",
|
|
]
|
|
cflags_cc = []
|
|
assert(is_linux || is_win) # TODO: is_mac?
|
|
if (is_linux) {
|
|
defines += [
|
|
"ANGLE_USE_X11",
|
|
"GL_APICALL=__attribute__((visibility(\"default\")))",
|
|
"GL_API=__attribute__((visibility(\"default\")))",
|
|
"EGLAPI=__attribute__((visibility(\"default\")))",
|
|
]
|
|
cflags_cc += [ "-std=c++14" ]
|
|
} else if (is_win) {
|
|
defines += [
|
|
"ANGLE_ENABLE_D3D11",
|
|
"ANGLE_ENABLE_D3D9",
|
|
"GL_APICALL=",
|
|
"GL_API=",
|
|
"EGLAPI=",
|
|
]
|
|
|
|
# Allow noexcept, even though we build without exceptions
|
|
cflags_cc += [ "/wd4577" ]
|
|
|
|
# Warnings are just noise if we're not maintaining the code.
|
|
if (is_win) {
|
|
cflags = [ "/w" ]
|
|
} else {
|
|
cflags = [ "-w" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
commit_id_output_file = "$root_gen_dir/angle2/commit.h"
|
|
action("commit_id") {
|
|
script = "$angle_root/src/commit_id.py"
|
|
outputs = [ commit_id_output_file ]
|
|
|
|
# Add ANGLE git as a dependency if it is available.
|
|
angle_git_is_present =
|
|
exec_script("$angle_root/src/commit_id.py", [ "check" ], "value") == 1
|
|
if (angle_git_is_present) {
|
|
# commit id should depend on angle's HEAD revision
|
|
inputs = [ "$angle_root/.git/HEAD" ]
|
|
}
|
|
|
|
args = [
|
|
"gen",
|
|
rebase_path(commit_id_output_file, root_build_dir),
|
|
]
|
|
}
|
|
|
|
shared_library("libGLESv2") {
|
|
configs += [ ":common" ]
|
|
configs -= [ "//gn:warnings" ]
|
|
defines = [
|
|
"LIBANGLE_IMPLEMENTATION",
|
|
"LIBGLESV2_IMPLEMENTATION",
|
|
]
|
|
deps = [
|
|
":commit_id",
|
|
"../zlib:compression_utils_portable",
|
|
]
|
|
libs = []
|
|
sources =
|
|
rebase_path(
|
|
angle_preprocessor_sources + angle_translator_sources +
|
|
angle_translator_essl_sources + angle_translator_glsl_sources +
|
|
angle_translator_hlsl_sources + libangle_sources +
|
|
libangle_gpu_info_util_sources + libangle_headers +
|
|
libangle_common_sources + libangle_image_util_sources +
|
|
libglesv2_sources + libangle_gl_sources +
|
|
angle_system_utils_sources + xxhash_sources,
|
|
".",
|
|
angle_root) + [ "$angle_root/src/libANGLE/FrameCapture_mock.cpp" ]
|
|
if (is_win) {
|
|
sources += [ "$angle_root/src/libGLESv2/libGLESv2_autogen.def" ]
|
|
}
|
|
if (is_linux) {
|
|
libs += [
|
|
"X11",
|
|
"Xi",
|
|
"Xext",
|
|
]
|
|
defines += [ "GPU_INFO_USE_X11" ]
|
|
sources +=
|
|
rebase_path(
|
|
libangle_gl_glx_sources + libangle_gl_egl_sources +
|
|
libangle_gpu_info_util_linux_sources +
|
|
libangle_gpu_info_util_x11_sources + libangle_gl_egl_dl_sources,
|
|
".",
|
|
angle_root) + [ "$angle_root/src/third_party/libXNVCtrl/NVCtrl.c" ]
|
|
} else if (is_win) {
|
|
defines += [
|
|
# TODO: ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
|
|
]
|
|
sources +=
|
|
rebase_path(libangle_gl_wgl_sources + libangle_d3d_shared_sources +
|
|
libangle_d3d9_sources + libangle_d3d11_sources +
|
|
libangle_d3d11_win32_sources +
|
|
libangle_gpu_info_util_win_sources,
|
|
".",
|
|
angle_root)
|
|
libs += [
|
|
"d3d9.lib",
|
|
"dxgi.lib",
|
|
"dxguid.lib",
|
|
"gdi32.lib",
|
|
"user32.lib",
|
|
]
|
|
deps += [
|
|
# TODO: copy_compiler_dll?
|
|
]
|
|
}
|
|
}
|
|
|
|
shared_library("libEGL") {
|
|
configs += [ ":common" ]
|
|
configs -= [ "//gn:warnings" ]
|
|
defines = [ "LIBEGL_IMPLEMENTATION" ]
|
|
deps = [ ":libGLESv2" ]
|
|
sources = rebase_path(libegl_sources, ".", angle_root)
|
|
if (is_win) {
|
|
sources += [ "$angle_root/src/libEGL/libEGL.def" ]
|
|
}
|
|
}
|