123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- # 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")
- import("$angle_root/src/compiler.gni")
- import("$angle_root/src/libGLESv2.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" ]
- if (is_clang) {
- cflags_cc += [
- # utilities.cpp includes an 'unsigned long' <= UINT_MAX check
- "-Wno-tautological-constant-compare",
- # With distributed Windows builds, files may lose their case during copy, causing
- # case-sensitivity mismatch on remote machines.
- "-Wno-nonportable-include-path",
- ]
- }
- }
- }
- copy("commit_id") {
- sources = [
- "$angle_root/src/commit.h",
- ]
- outputs = [
- "$root_gen_dir/angle2/id/commit.h",
- ]
- }
- shared_library("libGLESv2") {
- configs += [ ":common" ]
- configs -= [ "//gn:warnings" ]
- defines = [
- "LIBANGLE_IMPLEMENTATION",
- "LIBGLESV2_IMPLEMENTATION",
- ]
- deps = [
- ":commit_id",
- ]
- 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_common_sources + libangle_image_util_sources +
- libglesv2_sources + libangle_gl_sources +
- angle_system_utils_sources + xxhash_sources,
- ".",
- angle_root)
- if (is_win) {
- sources += [ "$angle_root/src/libGLESv2/libGLESv2_autogen.def" ]
- }
- if (is_linux) {
- libs += [
- "X11",
- "Xi",
- "Xext",
- ]
- sources += rebase_path(libangle_gl_glx_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,
- ".",
- angle_root)
- libs += [
- "d3d9.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" ]
- }
- }
|