# Copyright (C) 2020-2023 The Khronos Group Inc.
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
#    Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#    Redistributions in binary form must reproduce the above
#    copyright notice, this list of conditions and the following
#    disclaimer in the documentation and/or other materials provided
#    with the distribution.
#
#    Neither the name of The Khronos Group Inc. nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

package(
    default_visibility = ["//visibility:public"],
)

# Description:
#
# Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator.

licenses(["notice"])

exports_files(["LICENSE"])

# Build information generation script
py_binary(
    name = "build_info",
    srcs = ["build_info.py"],
)

py_binary(
    name = "gen_extension_headers",
    srcs = ["gen_extension_headers.py"],
)

genrule(
    name = "gen_build_info_h",
    srcs = ["CHANGES.md", "build_info.h.tmpl"],
    outs = ["glslang/build_info.h"],
    cmd_bash = "$(location build_info) $$(dirname $(location CHANGES.md)) -i $(location build_info.h.tmpl) -o $(location glslang/build_info.h)",
    cmd_bat = "for %F in ($(location CHANGES.md)) do $(location build_info) %~dpF -i $(location build_info.h.tmpl) -o $(location glslang/build_info.h)",
    tools = [":build_info"],
)

genrule(
    name = "gen_extension_headers_h",
    srcs = ["glslang/ExtensionHeaders", "gen_extension_headers.py"],
    outs = ["glslang/glsl_intrinsic_header.h"],
    cmd_bash = "$(location gen_extension_headers) -i  $(location glslang/ExtensionHeaders) -o $(location glslang/glsl_intrinsic_header.h)",
    tools = [":gen_extension_headers"],
)

COMMON_COPTS = select({
    "@bazel_tools//src/conditions:windows": [""],
    "//conditions:default": [
        "-Wall",
        "-Wuninitialized",
        "-Wunused",
        "-Wunused-local-typedefs",
        "-Wunused-parameter",
        "-Wunused-value",
        "-Wunused-variable",
        "-Wno-reorder",
        "-std=c++11",
        "-fvisibility=hidden",
        "-fvisibility-inlines-hidden",
        "-fno-exceptions",
        "-fno-rtti",
    ],
})

cc_library(
    name = "glslang",
    srcs = glob(
        [
            "glslang/GenericCodeGen/*.cpp",
            "glslang/HLSL/*.cpp",
            "glslang/MachineIndependent/*.cpp",
            "glslang/MachineIndependent/preprocessor/*.cpp",
        ],
        exclude = [
            "glslang/HLSL/pch.h",
            "glslang/MachineIndependent/pch.h",
        ],
    ) + [
        "OGLCompilersDLL/InitializeDll.cpp",
    ] + select({
        "@bazel_tools//src/conditions:windows":
            ["glslang/OSDependent/Windows/ossource.cpp"],
        "//conditions:default":
            ["glslang/OSDependent/Unix/ossource.cpp"],
    }),
    hdrs = glob([
        "glslang/HLSL/*.h",
        "glslang/Include/*.h",
        "glslang/MachineIndependent/*.h",
        "glslang/MachineIndependent/preprocessor/*.h",
    ]) + [
        "OGLCompilersDLL/InitializeDll.h",
        "StandAlone/DirStackFileIncluder.h",
        "glslang/OSDependent/osinclude.h",
        "glslang/Public/ShaderLang.h",
        ":gen_build_info_h",
    ],
    copts = COMMON_COPTS,
    defines = [
        "ENABLE_HLSL=0",
        "ENABLE_OPT=0",
    ],
    linkopts = select({
        "@bazel_tools//src/conditions:windows": [""],
        "//conditions:default": ["-lm", "-lpthread"],
    }),
    linkstatic = 1,
)

genrule(
    name = "export_spirv_headers",
    srcs = [
        "SPIRV/GLSL.ext.AMD.h",
        "SPIRV/GLSL.ext.EXT.h",
        "SPIRV/GLSL.ext.KHR.h",
        "SPIRV/GLSL.ext.NV.h",
        "SPIRV/GLSL.ext.ARM.h",
        "SPIRV/GLSL.std.450.h",
        "SPIRV/NonSemanticDebugPrintf.h",
        "SPIRV/NonSemanticShaderDebugInfo100.h",
        "SPIRV/spirv.hpp",
    ],
    outs = [
        "include/SPIRV/GLSL.ext.AMD.h",
        "include/SPIRV/GLSL.ext.EXT.h",
        "include/SPIRV/GLSL.ext.KHR.h",
        "include/SPIRV/GLSL.ext.NV.h",
        "include/SPIRV/GLSL.ext.ARM.h",
        "include/SPIRV/GLSL.std.450.h",
        "include/SPIRV/NonSemanticDebugPrintf.h",
        "include/SPIRV/NonSemanticShaderDebugInfo100.h",
        "include/SPIRV/spirv.hpp",
    ],
    cmd_bash = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/",
    cmd_bat = "(if not exist $(@D)\\include\\SPIRV mkdir $(@D)\\include\\SPIRV) && (for %S in ($(SRCS)) do @xcopy /q %S $(@D)\\include\\SPIRV\\ >NUL)",
)

cc_library(
    name = "SPIRV_headers",
    hdrs = [":export_spirv_headers"],
    copts = COMMON_COPTS,
    includes = [
        "include",
        "include/SPIRV",
    ],
    linkstatic = 1,
)

cc_library(
    name = "SPIRV",
    srcs = glob(
        ["SPIRV/*.cpp"],
        exclude = [
            "SPIRV/SpvTools.cpp",
        ],
    ),
    hdrs = [
        "SPIRV/GlslangToSpv.h",
        "SPIRV/Logger.h",
        "SPIRV/SPVRemapper.h",
        "SPIRV/SpvBuilder.h",
        "SPIRV/SpvTools.h",
        "SPIRV/bitutils.h",
        "SPIRV/disassemble.h",
        "SPIRV/doc.h",
        "SPIRV/hex_float.h",
        "SPIRV/spvIR.h",
    ],
    copts = COMMON_COPTS,
    includes = ["SPIRV"],
    linkopts = select({
        "@bazel_tools//src/conditions:windows": [""],
        "//conditions:default": ["-lm"],
    }),
    linkstatic = 1,
    deps = [
        ":SPIRV_headers",
        ":glslang",
    ],
)

cc_library(
    name = "glslang-default-resource-limits",
    srcs = ["glslang/ResourceLimits/ResourceLimits.cpp"],
    hdrs = ["glslang/Public/ResourceLimits.h"],
    copts = COMMON_COPTS,
    linkstatic = 1,
    deps = [":glslang"],
)

cc_binary(
    name = "glslangValidator",
    srcs = [
        "StandAlone/StandAlone.cpp",
        "StandAlone/Worklist.h",
        ":glslang/glsl_intrinsic_header.h"
    ],
    copts = COMMON_COPTS,
    deps = [
        ":SPIRV",
        ":glslang",
        ":glslang-default-resource-limits",
    ],
)

cc_binary(
    name = "spirv-remap",
    srcs = ["StandAlone/spirv-remap.cpp"],
    copts = COMMON_COPTS,
    deps = [
        ":SPIRV",
        ":glslang",
        ":glslang-default-resource-limits",
    ],
)

filegroup(
    name = "test_files",
    srcs = glob(
        ["Test/**"],
        exclude = [
            "Test/bump",
            "Test/glslangValidator",
            "Test/runtests",
        ],
    ),
)

cc_library(
    name = "glslang_test_lib",
    testonly = 1,
    srcs = [
        "gtests/HexFloat.cpp",
        "gtests/Initializer.h",
        "gtests/Settings.cpp",
        "gtests/Settings.h",
        "gtests/TestFixture.cpp",
        "gtests/TestFixture.h",
        "gtests/main.cpp",
    ],
    copts = COMMON_COPTS,
    data = [":test_files"],
    defines = select({
        # Unfortunately we can't use $(location) in cc_library at the moment.
        # See https://github.com/bazelbuild/bazel/issues/1023
        # So we'll specify the path manually.
        "@bazel_tools//src/conditions:windows":
            ["GLSLANG_TEST_DIRECTORY='\"../../../../../Test\"'"],
        "//conditions:default":
            ["GLSLANG_TEST_DIRECTORY='\"Test\"'"],
    }),
    linkstatic = 1,
    deps = [
        ":SPIRV",
        ":glslang",
        ":glslang-default-resource-limits",
        "@com_google_googletest//:gtest",
    ],
)

GLSLANG_TESTS = glob(
    ["gtests/*.FromFile.cpp"],
    # Since we are not building the SPIRV-Tools dependency, the following tests
    # cannot be performed.
    exclude = [
        "gtests/Hlsl.FromFile.cpp",
        "gtests/Spv.FromFile.cpp",
    ],
)

[cc_test(
    name = test_file.replace("gtests/", "").replace(".FromFile.cpp", "") + "_test",
    srcs = [test_file],
    copts = COMMON_COPTS,
    data = [
        ":test_files",
    ],
    deps = [
        ":SPIRV",
        ":glslang",
        ":glslang_test_lib",
    ],
) for test_file in GLSLANG_TESTS]
