Edit

kc3-lang/angle/BUILD.gn

Branch :

  • Show log

    Commit

  • Author : Nico Weber
    Date : 2015-06-04 12:58:22
    Hash : 47b53c00
    Message : Mark no_angle_common as no_chromium_code. All other targets that remove chromium_code add no_chromium_code; looks like not doing this here was an oversight. BUG=491209 Change-Id: Id5c81d019603b428561a23aaa4dbe4427e43e751 Reviewed-on: https://chromium-review.googlesource.com/275316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>

  • BUILD.gn
  • # Copyright 2014 The Chromium Authors. All rights reserved.
    # Use of this source code is governed by a BSD-style license that can be
    # found in the LICENSE file.
    
    # import the use_x11 variable
    import("//build/config/ui.gni")
    
    gles_gypi = exec_script(
      "//build/gypi_to_gn.py",
      [ rebase_path("src/libGLESv2.gypi") ],
      "scope",
      [ "src/libGLESv2.gypi" ])
    
    compiler_gypi = exec_script(
      "//build/gypi_to_gn.py",
      [ rebase_path("src/compiler.gypi") ],
      "scope",
      [ "src/compiler.gypi" ])
    
    # This config is exported to dependent targets (and also applied to internal
    # ones).
    config("external_config") {
      include_dirs = [
        "include",
      ]
    }
    
    # This config is applied to internal Angle targets (not pushed to dependents).
    config("internal_config") {
      include_dirs = [
        "include",
        "src",
      ]
    }
    
    angle_enable_d3d9 = false
    angle_enable_d3d11 = false
    angle_enable_gl = false
    
    if (is_win) {
      angle_enable_d3d9 = true
      angle_enable_d3d11 = true
      angle_enable_gl = true
    
      import("//build/config/win/visual_studio_version.gni")
      copy("copy_compiler_dll") {
        sources = [ "$windows_sdk_path/Redist/D3D/$target_cpu/d3dcompiler_47.dll" ]
        outputs = [ "$root_build_dir/d3dcompiler_47.dll" ]
      }
    } # is_win
    
    if (is_linux) {
      angle_enable_gl = true
    }
    
    angle_enable_hlsl = false
    
    if (angle_enable_d3d9 || angle_enable_d3d11) {
      angle_enable_hlsl = true
    }
    
    component("translator") {
      sources = [
        "src/compiler/translator/ShaderLang.cpp",
        "src/compiler/translator/ShaderVars.cpp",
      ]
    
      defines = [ "ANGLE_TRANSLATOR_IMPLEMENTATION" ]
    
      if (angle_enable_hlsl) {
        sources += rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src")
        defines += [ "ANGLE_ENABLE_HLSL" ]
      }
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        "//build/config/compiler:no_chromium_code",
      ]
    
      public_deps = [
        ":translator_lib",
      ]
    }
    
    # Holds the shared includes so we only need to list them once.
    source_set("includes") {
      sources = [
        "include/EGL/egl.h",
        "include/EGL/eglext.h",
        "include/EGL/eglplatform.h",
        "include/GLES2/gl2.h",
        "include/GLES2/gl2ext.h",
        "include/GLES2/gl2platform.h",
        "include/GLES3/gl3.h",
        "include/GLES3/gl3ext.h",
        "include/GLES3/gl3platform.h",
        "include/GLSLANG/ShaderLang.h",
        "include/KHR/khrplatform.h",
      ]
    }
    
    static_library("preprocessor") {
      sources = rebase_path(compiler_gypi.angle_preprocessor_sources, ".", "src")
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        "//build/config/compiler:no_chromium_code",
      ]
    }
    
    config("translator_static_config") {
      defines = [ "ANGLE_TRANSLATOR_STATIC" ]
    }
    
    static_library("angle_common") {
      sources = rebase_path(gles_gypi.libangle_common_sources, ".", "src")
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        "//build/config/compiler:no_chromium_code",
      ]
    }
    
    static_library("translator_lib") {
      sources = rebase_path(compiler_gypi.angle_translator_lib_sources, ".", "src")
    
      if (angle_enable_hlsl) {
        sources += rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src")
        defines = [ "ANGLE_ENABLE_HLSL" ]
      }
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        ":translator_static_config",
        "//build/config/compiler:no_chromium_code",
      ]
      public_configs = [ ":external_config" ]
    
      deps = [
        ":includes",
        ":preprocessor",
      ]
    
      public_deps = [
        ":angle_common",
      ]
    }
    
    static_library("translator_static") {
      sources = [
        "src/compiler/translator/ShaderLang.cpp",
        "src/compiler/translator/ShaderVars.cpp",
      ]
    
      if (angle_enable_hlsl) {
        defines = [ "ANGLE_ENABLE_HLSL" ]
      }
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        "//build/config/compiler:no_chromium_code",
      ]
      public_configs = [ ":translator_static_config" ]
    
      public_deps = [
        ":translator_lib",
      ]
    }
    
    config("commit_id_config") {
      include_dirs = [ "$root_gen_dir/angle" ]
    }
    
    action("commit_id") {
      script = "src/commit_id.py"
    
      output_file = "$root_gen_dir/angle/id/commit.h"
      outputs = [ output_file ]
    
      args = [
        "gen",
        rebase_path(".", root_build_dir),
        rebase_path(output_file, root_build_dir),
      ]
    
      public_configs = [ ":commit_id_config" ]
    }
    
    config("libANGLE_config") {
      cflags = []
      defines = []
      if (angle_enable_d3d9) {
        defines += [ "ANGLE_ENABLE_D3D9" ]
      }
      if (angle_enable_d3d11) {
        defines += [ "ANGLE_ENABLE_D3D11" ]
      }
      if (angle_enable_gl) {
        defines += [ "ANGLE_ENABLE_OPENGL" ]
      }
      if (use_x11) {
        defines += [ "ANGLE_USE_X11" ]
      }
      defines += [
        "GL_APICALL=",
        "GL_GLEXT_PROTOTYPES=",
        "EGLAPI=",
      ]
      if (is_win) {
        cflags += [ "/wd4530" ]  # C++ exception handler used, but unwind semantics are not enabled.
      }
    }
    
    static_library("libANGLE") {
      sources = rebase_path(gles_gypi.libangle_sources, ".", "src")
    
      include_dirs = []
      libs = []
      defines = [
        "LIBANGLE_IMPLEMENTATION",
      ]
    
      # Shared D3D sources.
      if (angle_enable_d3d9 || angle_enable_d3d11) {
        sources += rebase_path(gles_gypi.libangle_d3d_shared_sources, ".", "src")
    
        defines += [
          "ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ " +
            "\"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }",
        ]
      }
    
      if (angle_enable_d3d9) {
        sources += rebase_path(gles_gypi.libangle_d3d9_sources, ".", "src")
        libs += [ "d3d9.lib" ]
      }
    
      if (angle_enable_d3d11) {
        sources += rebase_path(gles_gypi.libangle_d3d11_sources, ".", "src")
        sources += rebase_path(gles_gypi.libangle_d3d11_win32_sources, ".", "src")
        libs += [ "dxguid.lib" ]
      }
    
      if (angle_enable_gl) {
        sources += rebase_path(gles_gypi.libangle_gl_sources, ".", "src")
        include_dirs += [ "src/third_party/khronos" ]
    
        if (is_win) {
          sources += rebase_path(gles_gypi.libangle_gl_wgl_sources, ".", "src")
        }
        if (use_x11) {
          sources += rebase_path(gles_gypi.libangle_gl_glx_sources, ".", "src")
          libs += [ "X11" ]
        }
      }
    
      if (is_debug) {
        defines += [
          "ANGLE_GENERATE_SHADER_DEBUG_INFO",
          "ANGLE_ENABLE_DEBUG_ANNOTATIONS",
        ]
      }
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":commit_id_config",
        ":libANGLE_config",
        ":internal_config",
        "//build/config/compiler:no_chromium_code",
      ]
    
      deps = [
        ":commit_id",
        ":includes",
        ":translator_static",
        ":angle_common",
      ]
    
      if (is_win) {
        deps += [ ":copy_compiler_dll" ]
      }
    }
    
    shared_library("libGLESv2") {
      sources = rebase_path(gles_gypi.libglesv2_sources, ".", "src")
    
      if (is_win) {
        ldflags = [ "/DEF:" +
                    rebase_path("src/libGLESv2/libGLESv2.def", root_build_dir) ]
      }
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        ":commit_id_config",
        ":libANGLE_config",
        "//build/config/compiler:no_chromium_code",
      ]
    
      defines = [
        "LIBGLESV2_IMPLEMENTATION",
      ]
    
      deps = [
        ":includes",
        ":libANGLE",
      ]
    }
    
    shared_library("libEGL") {
      sources = rebase_path(gles_gypi.libegl_sources, ".", "src")
    
      if (is_win) {
        ldflags = [ "/DEF:" +
                    rebase_path("src/libEGL/libEGL.def", root_build_dir) ]
      }
    
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [
        ":internal_config",
        ":commit_id_config",
        ":libANGLE_config",
        "//build/config/compiler:no_chromium_code",
      ]
    
      defines = [
        "LIBEGL_IMPLEMENTATION",
      ]
    
      deps = [
        ":includes",
        ":libGLESv2",
      ]
    }