aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/angle2
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-09-23 13:18:41 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-23 13:18:41 -0700
commitd68f9b00389bf676b171f250e684486cb2fbd404 (patch)
tree874bfd2edab54bf9d03940ea00d371e84d1f94c5 /third_party/angle2
parenteed6b0e1d865a1f93143c09961debba0aca592ca (diff)
GN: ANGLE
Angle's existing GN files only work in Chrome, so I've written a new one. This won't work on Windows, but our GN build doesn't work on Windows anyway. So this CL is an attempt to get a ahead of that curve on ANGLE. It looks large but fairly straightforward. Now working on Linux: $ gn gen angle --args=skia_use_angle=true $ ninja -C angle $ angle/dm --config angle-gl --src gm -w dm-out BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2361983002 Review-Url: https://codereview.chromium.org/2361983002
Diffstat (limited to 'third_party/angle2')
-rw-r--r--third_party/angle2/BUILD.gn115
1 files changed, 115 insertions, 0 deletions
diff --git a/third_party/angle2/BUILD.gn b/third_party/angle2/BUILD.gn
new file mode 100644
index 0000000000..3ae0f8efe5
--- /dev/null
+++ b/third_party/angle2/BUILD.gn
@@ -0,0 +1,115 @@
+# 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("../third_party.gni")
+
+third_party("angle2") {
+ public_include_dirs = [ "$angle_root/include" ]
+ deps = [
+ ":libEGL",
+ ":libGLESv2",
+ ]
+}
+
+compiler_gypi = exec_script("//gn/gypi_to_gn.py",
+ [ rebase_path("$angle_root/src/compiler.gypi") ],
+ "scope",
+ [])
+
+gles_gypi = exec_script("//gn/gypi_to_gn.py",
+ [ rebase_path("$angle_root/src/libGLESv2.gypi") ],
+ "scope",
+ [])
+
+config("common") {
+ cflags = [ "-w" ]
+ defines = [
+ "ANGLE_ENABLE_ESSL",
+ "ANGLE_ENABLE_GLSL",
+ "GL_GLEXT_PROTOTYPES",
+ "EGL_EGLEXT_PROTOTYPES",
+ ]
+ include_dirs = [
+ "$root_gen_dir/angle2",
+ "$angle_root/include",
+ "$angle_root/src",
+ "$angle_root/src/common/third_party/numerics",
+ ]
+
+ assert(is_linux) # TODO: is_win, of course, maybe is_mac?
+ if (is_linux) {
+ defines += [
+ "ANGLE_ENABLE_OPENGL",
+ "ANGLE_USE_X11",
+ "GL_APICALL=__attribute__((visibility(\"default\")))",
+ "EGLAPI=__attribute__((visibility(\"default\")))",
+ ]
+ }
+}
+
+copy("commit_id") {
+ sources = [
+ "$angle_root/src/commit.h",
+ ]
+ outputs = [
+ "$root_gen_dir/angle2/id/commit.h",
+ ]
+}
+
+shared_library("libGLESv2") {
+ configs += [ ":common" ]
+ defines = [ "LIBGLESV2_IMPLEMENTATION" ]
+ deps = [
+ ":commit_id",
+ ]
+ libs = []
+ sources = rebase_path(compiler_gypi.angle_preprocessor_sources +
+ compiler_gypi.angle_translator_lib_sources +
+ compiler_gypi.angle_translator_lib_essl_sources +
+ compiler_gypi.angle_translator_lib_glsl_sources +
+ gles_gypi.libangle_sources +
+ gles_gypi.libangle_common_sources +
+ gles_gypi.libangle_image_util_sources +
+ gles_gypi.libglesv2_sources,
+ ".",
+ "$angle_root/src") +
+ [
+ "$angle_root/src/compiler/translator/ShaderLang.cpp",
+ "$angle_root/src/compiler/translator/ShaderVars.cpp",
+ ]
+ if (!is_win) {
+ sources -= [ "$angle_root/src/libGLESv2/libGLESv2.def" ]
+ }
+
+ if (is_linux) {
+ libs += [
+ "X11",
+ "Xi",
+ "Xext",
+ ]
+ sources += rebase_path(gles_gypi.libangle_gl_sources +
+ gles_gypi.libangle_gl_glx_sources,
+ ".",
+ "$angle_root/src") +
+ [ "$angle_root/src/third_party/libXNVCtrl/NVCtrl.c" ]
+ }
+}
+
+shared_library("libEGL") {
+ configs += [ ":common" ]
+ defines = [ "LIBEGL_IMPLEMENTATION" ]
+ deps = [
+ ":libGLESv2",
+ ]
+ sources = rebase_path(gles_gypi.libegl_sources, ".", "$angle_root/src")
+ if (!is_win) {
+ sources -= [ "$angle_root/src/libEGL/libEGL.def" ]
+ }
+}