+# Copyright (C) 2020 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"],
)
#
# Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator.
-licenses(["notice"]) # Mixed: BSD, MIT, Khronos, Apache 2.0
+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": [
srcs = glob(
[
"glslang/GenericCodeGen/*.cpp",
+ "glslang/HLSL/*.cpp",
"glslang/MachineIndependent/*.cpp",
"glslang/MachineIndependent/preprocessor/*.cpp",
- "hlsl/*.cpp",
],
exclude = [
- "glslang/MachineIndependent/pch.cpp",
+ "glslang/HLSL/pch.h",
"glslang/MachineIndependent/pch.h",
- "hlsl/pch.cpp",
- "hlsl/pch.h",
],
) + [
"OGLCompilersDLL/InitializeDll.cpp",
["glslang/OSDependent/Unix/ossource.cpp"],
}),
hdrs = glob([
+ "glslang/HLSL/*.h",
"glslang/Include/*.h",
"glslang/MachineIndependent/*.h",
"glslang/MachineIndependent/preprocessor/*.h",
- "hlsl/*.h",
]) + [
"OGLCompilersDLL/InitializeDll.h",
"StandAlone/DirStackFileIncluder.h",
"glslang/OSDependent/osinclude.h",
"glslang/Public/ShaderLang.h",
+ ":gen_build_info_h",
],
copts = COMMON_COPTS,
defines = [
"SPIRV/GLSL.ext.KHR.h",
"SPIRV/GLSL.ext.NV.h",
"SPIRV/GLSL.std.450.h",
+ "SPIRV/NonSemanticDebugPrintf.h",
+ "SPIRV/NonSemanticShaderDebugInfo100.h",
"SPIRV/spirv.hpp",
],
outs = [
"include/SPIRV/GLSL.ext.KHR.h",
"include/SPIRV/GLSL.ext.NV.h",
"include/SPIRV/GLSL.std.450.h",
+ "include/SPIRV/NonSemanticDebugPrintf.h",
+ "include/SPIRV/NonSemanticShaderDebugInfo100.h",
"include/SPIRV/spirv.hpp",
],
- cmd = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/",
+ 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(
cc_library(
name = "glslang-default-resource-limits",
srcs = ["StandAlone/ResourceLimits.cpp"],
- hdrs = ["StandAlone/ResourceLimits.h"],
+ hdrs = ["glslang/Public/ResourceLimits.h"],
copts = COMMON_COPTS,
linkstatic = 1,
deps = [":glslang"],
srcs = [
"StandAlone/StandAlone.cpp",
"StandAlone/Worklist.h",
+ ":glslang/glsl_intrinsic_header.h"
],
copts = COMMON_COPTS,
deps = [