# Copyright 2018 The Dawn Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("../scripts/dawn_overrides_with_defaults.gni")
import("../scripts/dawn_features.gni")

is_msvc = is_win && !is_clang

###############################################################################
# Third-party dependencies needed by libdawn_native
###############################################################################

# Glad
config("glad_public") {
  include_dirs = [ "glad/include" ]
}

static_library("glad") {
  sources = [
    "glad/include/KHR/khrplatform.h",
    "glad/include/glad/glad.h",
    "glad/src/glad.c",
  ]

  public_configs = [ ":glad_public" ]
}

# SPIRV-Cross
spirv_cross_dir = dawn_spirv_cross_dir

config("spirv_cross_public") {
  include_dirs = [ "." ]
  defines = [ "SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS" ]
}

static_library("spirv_cross") {
  public_configs = [ ":spirv_cross_public" ]

  if (!is_msvc) {
    cflags_cc = [
      "-Wno-implicit-fallthrough",
      "-Wno-return-type",
      "-Wno-sign-compare",
    ]
  }

  sources = [
    "${spirv_cross_dir}/GLSL.std.450.h",
    "${spirv_cross_dir}/spirv.hpp",
    "${spirv_cross_dir}/spirv_cfg.cpp",
    "${spirv_cross_dir}/spirv_cfg.hpp",
    "${spirv_cross_dir}/spirv_common.hpp",
    "${spirv_cross_dir}/spirv_cross.cpp",
    "${spirv_cross_dir}/spirv_cross.hpp",
  ]

  need_glsl_cross = dawn_enable_opengl

  if (dawn_enable_d3d12) {
    sources += [
      "${spirv_cross_dir}/spirv_hlsl.cpp",
      "${spirv_cross_dir}/spirv_hlsl.hpp",
    ]
    need_glsl_cross = true
  }

  if (dawn_enable_metal) {
    sources += [
      "${spirv_cross_dir}/spirv_msl.cpp",
      "${spirv_cross_dir}/spirv_msl.hpp",
    ]
    need_glsl_cross = true
  }

  if (need_glsl_cross) {
    sources += [
      "${spirv_cross_dir}/spirv_glsl.cpp",
      "${spirv_cross_dir}/spirv_glsl.hpp",
    ]
  }
}

# An empty Vulkan target to add the include dirs and list the sources
# for the header inclusion check.
config("vulkan_headers_public") {
  include_dirs = [ "." ]
}

source_set("vulkan_headers") {
  sources = [
    "vulkan/vk_platform.h",
    "vulkan/vulkan.h",
  ]

  public_configs = [ ":vulkan_headers_public" ]
}

###############################################################################
# Gtest Gmock - build targets when outside of Chrome
# TODO(cwallez@chromium.org): Adapt them to build with Chromium's harness
###############################################################################

googletest_dir = dawn_googletest_dir

config("gtest_config") {
  include_dirs = [
    "${googletest_dir}/googletest",
    "${googletest_dir}/googletest/include",
  ]
}

static_library("gtest") {
  testonly = true
  sources = [
    "${googletest_dir}/googletest/src/gtest-all.cc",
  ]
  public_configs = [ ":gtest_config" ]
}

config("gmock_config") {
  include_dirs = [
    "${googletest_dir}/googlemock",
    "${googletest_dir}/googlemock/include",
    "${googletest_dir}/googletest/include",
  ]
}

static_library("gmock") {
  testonly = true
  sources = [
    "${googletest_dir}/googlemock/src/gmock-all.cc",
  ]
  public_configs = [ ":gmock_config" ]
}

###############################################################################
# GLSLang - good enough build targets
###############################################################################

glslang_dir = dawn_glslang_dir
spirv_tools_dir = dawn_spirv_tools_dir

config("glslang_public") {
  include_dirs = [ glslang_dir ]
}

static_library("glslang_static") {
  defines = []

  public_configs = [ ":glslang_public" ]

  sources = [
    "${glslang_dir}/OGLCompilersDLL/InitializeDll.cpp",
    "${glslang_dir}/OGLCompilersDLL/InitializeDll.h",
    "${glslang_dir}/SPIRV/GLSL.ext.EXT.h",
    "${glslang_dir}/SPIRV/GLSL.ext.KHR.h",
    "${glslang_dir}/SPIRV/GLSL.std.450.h",
    "${glslang_dir}/SPIRV/GlslangToSpv.cpp",
    "${glslang_dir}/SPIRV/GlslangToSpv.h",
    "${glslang_dir}/SPIRV/InReadableOrder.cpp",
    "${glslang_dir}/SPIRV/Logger.cpp",
    "${glslang_dir}/SPIRV/Logger.h",
    "${glslang_dir}/SPIRV/SPVRemapper.cpp",
    "${glslang_dir}/SPIRV/SPVRemapper.h",
    "${glslang_dir}/SPIRV/SpvBuilder.cpp",
    "${glslang_dir}/SPIRV/SpvBuilder.h",
    "${glslang_dir}/SPIRV/bitutils.h",
    "${glslang_dir}/SPIRV/disassemble.cpp",
    "${glslang_dir}/SPIRV/disassemble.h",
    "${glslang_dir}/SPIRV/doc.cpp",
    "${glslang_dir}/SPIRV/doc.h",
    "${glslang_dir}/SPIRV/hex_float.h",
    "${glslang_dir}/SPIRV/spirv.hpp",
    "${glslang_dir}/SPIRV/spvIR.h",
    "${glslang_dir}/glslang/GenericCodeGen/CodeGen.cpp",
    "${glslang_dir}/glslang/GenericCodeGen/Link.cpp",
    "${glslang_dir}/glslang/Include/BaseTypes.h",
    "${glslang_dir}/glslang/Include/Common.h",
    "${glslang_dir}/glslang/Include/ConstantUnion.h",
    "${glslang_dir}/glslang/Include/InfoSink.h",
    "${glslang_dir}/glslang/Include/InitializeGlobals.h",
    "${glslang_dir}/glslang/Include/PoolAlloc.h",
    "${glslang_dir}/glslang/Include/ResourceLimits.h",
    "${glslang_dir}/glslang/Include/ShHandle.h",
    "${glslang_dir}/glslang/Include/Types.h",
    "${glslang_dir}/glslang/Include/arrays.h",
    "${glslang_dir}/glslang/Include/intermediate.h",
    "${glslang_dir}/glslang/Include/revision.h",
    "${glslang_dir}/glslang/MachineIndependent/Constant.cpp",
    "${glslang_dir}/glslang/MachineIndependent/InfoSink.cpp",
    "${glslang_dir}/glslang/MachineIndependent/Initialize.cpp",
    "${glslang_dir}/glslang/MachineIndependent/Initialize.h",
    "${glslang_dir}/glslang/MachineIndependent/IntermTraverse.cpp",
    "${glslang_dir}/glslang/MachineIndependent/Intermediate.cpp",
    "${glslang_dir}/glslang/MachineIndependent/LiveTraverser.h",
    "${glslang_dir}/glslang/MachineIndependent/ParseContextBase.cpp",
    "${glslang_dir}/glslang/MachineIndependent/ParseHelper.cpp",
    "${glslang_dir}/glslang/MachineIndependent/ParseHelper.h",
    "${glslang_dir}/glslang/MachineIndependent/PoolAlloc.cpp",
    "${glslang_dir}/glslang/MachineIndependent/RemoveTree.cpp",
    "${glslang_dir}/glslang/MachineIndependent/RemoveTree.h",
    "${glslang_dir}/glslang/MachineIndependent/Scan.cpp",
    "${glslang_dir}/glslang/MachineIndependent/Scan.h",
    "${glslang_dir}/glslang/MachineIndependent/ScanContext.h",
    "${glslang_dir}/glslang/MachineIndependent/ShaderLang.cpp",
    "${glslang_dir}/glslang/MachineIndependent/SymbolTable.cpp",
    "${glslang_dir}/glslang/MachineIndependent/SymbolTable.h",
    "${glslang_dir}/glslang/MachineIndependent/Versions.cpp",
    "${glslang_dir}/glslang/MachineIndependent/Versions.h",
    "${glslang_dir}/glslang/MachineIndependent/attribute.cpp",
    "${glslang_dir}/glslang/MachineIndependent/attribute.h",
    "${glslang_dir}/glslang/MachineIndependent/gl_types.h",
    "${glslang_dir}/glslang/MachineIndependent/glslang.y",
    "${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp",
    "${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp.h",
    "${glslang_dir}/glslang/MachineIndependent/intermOut.cpp",
    "${glslang_dir}/glslang/MachineIndependent/iomapper.cpp",
    "${glslang_dir}/glslang/MachineIndependent/iomapper.h",
    "${glslang_dir}/glslang/MachineIndependent/limits.cpp",
    "${glslang_dir}/glslang/MachineIndependent/linkValidate.cpp",
    "${glslang_dir}/glslang/MachineIndependent/localintermediate.h",
    "${glslang_dir}/glslang/MachineIndependent/parseConst.cpp",
    "${glslang_dir}/glslang/MachineIndependent/parseVersions.h",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/Pp.cpp",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpAtom.cpp",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.cpp",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.h",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpScanner.cpp",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.cpp",
    "${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.h",
    "${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.cpp",
    "${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.h",
    "${glslang_dir}/glslang/MachineIndependent/reflection.cpp",
    "${glslang_dir}/glslang/MachineIndependent/reflection.h",
    "${glslang_dir}/glslang/OSDependent/osinclude.h",
    "${glslang_dir}/glslang/Public/ShaderLang.h",
  ]

  if (is_msvc) {
    cflags_cc = [
      # switch statement contains 'default' but no 'case' labels
      "/wd4065",

      # local variable is initialized but not referenced
      "/wd4189",
    ]
  } else {
    cflags_cc = [
      "-Wno-implicit-fallthrough",
      "-Wno-ignored-qualifiers",
      "-Wno-unused-variable",
    ]
  }

  deps = [
    "${spirv_tools_dir}:spvtools_opt",
  ]

  if (is_win) {
    sources += [ "${glslang_dir}/glslang/OSDependent/Windows/ossource.cpp" ]
    defines += [ "GLSLANG_OSINCLUDE_WIN32" ]
  } else {
    sources += [ "${glslang_dir}/glslang/OSDependent/Unix/ossource.cpp" ]
    defines += [ "GLSLANG_OSINCLUDE_UNIX" ]
  }
}

###############################################################################
# Shaderc - good enough build targets
###############################################################################

shaderc_dir = dawn_shaderc_dir

config("shaderc_util_public") {
  include_dirs = [ "${shaderc_dir}/libshaderc_util/include" ]
}

static_library("shaderc_util") {
  public_configs = [ ":shaderc_util_public" ]
  deps = [
    ":glslang_static",
    "${spirv_tools_dir}:spvtools",
  ]

  sources = [
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/counting_includer.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/file_finder.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/format.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/io.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/message.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/mutex.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/resources.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/string_piece.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/universal_unistd.h",
    "${shaderc_dir}/libshaderc_util/include/libshaderc_util/version_profile.h",
    "${shaderc_dir}/libshaderc_util/src/compiler.cc",
    "${shaderc_dir}/libshaderc_util/src/file_finder.cc",
    "${shaderc_dir}/libshaderc_util/src/io.cc",
    "${shaderc_dir}/libshaderc_util/src/message.cc",
    "${shaderc_dir}/libshaderc_util/src/resources.cc",
    "${shaderc_dir}/libshaderc_util/src/shader_stage.cc",
    "${shaderc_dir}/libshaderc_util/src/spirv_tools_wrapper.cc",
    "${shaderc_dir}/libshaderc_util/src/version_profile.cc",
  ]
}

config("shaderc_public") {
  include_dirs = [ "${shaderc_dir}/libshaderc/include" ]
  defines = [ "SHADERC_SHAREDLIB" ]

  # Executable needs an rpath to find our shared libraries on OSX
  if (is_mac) {
    ldflags = [
      "-rpath",
      "@executable_path/",
    ]
  }
}

shared_library("libshaderc") {
  public_configs = [ ":shaderc_public" ]
  deps = [
    ":glslang_static",
    ":shaderc_util",
    "${spirv_tools_dir}:spvtools",
    "${spirv_tools_dir}:spvtools_val",
  ]
  defines = [ "SHADERC_IMPLEMENTATION" ]

  sources = [
    "${shaderc_dir}/libshaderc/include/shaderc/shaderc.h",
    "${shaderc_dir}/libshaderc/include/shaderc/shaderc.hpp",
    "${shaderc_dir}/libshaderc/src/shaderc.cc",
    "${shaderc_dir}/libshaderc/src/shaderc_private.h",
  ]

  # Tell dependents where to find this shared library
  if (is_mac) {
    ldflags = [
      "-install_name",
      "@rpath/${target_name}.dylib",
    ]
  }
}

###############################################################################
# GLFW - good enough build targets
###############################################################################

glfw_dir = dawn_glfw_dir

config("glfw_public") {
  include_dirs = [ "${glfw_dir}/include" ]

  if (is_win) {
    defines = [ "_GLFW_WIN32" ]
  }

  if (is_mac) {
    defines = [ "_GLFW_COCOA" ]
  }

  if (is_linux) {
    defines = [ "_GLFW_X11" ]
  }
}

static_library("glfw") {
  public_configs = [ ":glfw_public" ]

  if (is_msvc) {
    # nonstandard extension, function/data pointer conversion in expression
    cflags_c = [ "/wd4152" ]
  } else {
    cflags_c = [ "-Wno-sign-compare" ]
  }

  sources = [
    "${glfw_dir}/include/GLFW/glfw3.h",
    "${glfw_dir}/include/GLFW/glfw3native.h",
    "${glfw_dir}/src/context.c",
    "${glfw_dir}/src/init.c",
    "${glfw_dir}/src/input.c",
    "${glfw_dir}/src/internal.h",
    "${glfw_dir}/src/monitor.c",
    "${glfw_dir}/src/vulkan.c",
    "${glfw_dir}/src/window.c",
  ]
  libs = []

  if (is_win) {
    sources += [
      "${glfw_dir}/src/egl_context.c",
      "${glfw_dir}/src/egl_context.h",
      "${glfw_dir}/src/wgl_context.c",
      "${glfw_dir}/src/wgl_context.h",
      "${glfw_dir}/src/win32_init.c",
      "${glfw_dir}/src/win32_joystick.c",
      "${glfw_dir}/src/win32_joystick.h",
      "${glfw_dir}/src/win32_monitor.c",
      "${glfw_dir}/src/win32_platform.h",
      "${glfw_dir}/src/win32_time.c",
      "${glfw_dir}/src/win32_tls.c",
      "${glfw_dir}/src/win32_window.c",
    ]
  }

  if (is_linux || is_mac) {
    sources += [
      "${glfw_dir}/src/posix_tls.c",
      "${glfw_dir}/src/posix_tls.h",
    ]
  }

  if (is_linux) {
    sources += [
      "${glfw_dir}/src/egl_context.c",
      "${glfw_dir}/src/egl_context.h",
      "${glfw_dir}/src/glx_context.c",
      "${glfw_dir}/src/glx_context.h",
      "${glfw_dir}/src/linux_joystick.c",
      "${glfw_dir}/src/linux_joystick.h",
      "${glfw_dir}/src/posix_time.c",
      "${glfw_dir}/src/posix_time.h",
      "${glfw_dir}/src/x11_init.c",
      "${glfw_dir}/src/x11_monitor.c",
      "${glfw_dir}/src/x11_platform.h",
      "${glfw_dir}/src/x11_window.c",
      "${glfw_dir}/src/xkb_unicode.c",
      "${glfw_dir}/src/xkb_unicode.h",
    ]

    libs += [
      "rt",
      "dl",
      "X11",
      "Xcursor",
      "Xinerama",
      "Xrandr",
    ]
  }

  if (is_mac) {
    sources += [
      "${glfw_dir}/src/cocoa_init.m",
      "${glfw_dir}/src/cocoa_joystick.h",
      "${glfw_dir}/src/cocoa_joystick.m",
      "${glfw_dir}/src/cocoa_monitor.m",
      "${glfw_dir}/src/cocoa_platform.h",
      "${glfw_dir}/src/cocoa_time.c",
      "${glfw_dir}/src/cocoa_window.m",
      "${glfw_dir}/src/nsgl_context.h",
      "${glfw_dir}/src/nsgl_context.m",
    ]
    libs += [
      "Cocoa.framework",
      "IOKit.framework",
      "CoreFoundation.framework",
      "CoreVideo.framework",
    ]
    cflags_objc = [
      "-Wno-sign-compare",
      "-Wno-unguarded-availability",
    ]
  }
}

###############################################################################
# Header-only dependencies for samples
###############################################################################

if (dawn_standalone) {
  # GLM
  config("glm_public_config") {
    include_dirs = [ "glm" ]
  }
  source_set("glm") {
    public_configs = [ ":glm_public_config" ]
    # GLM is header only but has too many files to list them.
  }

  # STB
  config("stb_public_config") {
    include_dirs = [ "stb" ]

    if (!is_msvc) {
      cflags_cc = [ "-Wno-implicit-fallthrough" ]
    }
  }
  source_set("stb") {
    public_configs = [ ":stb_public_config" ]
    sources = [
      "stb/stb_image.h",
    ]
  }

  # PicoJSON
  config("picojson_public_config") {
    include_dirs = [ "." ]
  }
  source_set("picojson") {
    public_configs = [ ":picojson_public_config" ]
    sources = [
      "picojson/picojson.h",
    ]
  }

  # Tiny glTF Loader
  config("tiny_gltf_loader_public_config") {
    include_dirs = [ "." ]
  }
  source_set("tiny_gltf_loader") {
    public_configs = [ ":tiny_gltf_loader_public_config" ]
    public_deps = [
      ":picojson",
      ":stb",
    ]
    sources = [
      "tinygltfloader/tiny_gltf_loader.h",
    ]
  }
}
