third_party/shaderc: init

ecs
q3k 2020-07-26 14:59:11 +02:00
parent c87865d16e
commit f5ae25214a
7 changed files with 158 additions and 8 deletions

View File

@ -33,12 +33,8 @@ rust_repository_set(
load("@io_bazel_rules_rust//:workspace.bzl", "bazel_version")
bazel_version(name = "bazel_version")
http_archive(
name = "glslang",
sha256 = "0b79a120ac7826ac31bcd47ba3e11d79d8d2709bfaf17125aa759eeec6799dd3",
strip_prefix = "glslang-b0ada80356ca7b560c600b93a596af1331442542",
url = "https://github.com/KhronosGroup/glslang/archive/b0ada80356ca7b560c600b93a596af1331442542.tar.gz",
)
load("//third_party/shaderc:deps.bzl", "shaderc_deps")
shaderc_deps()
http_archive(
name = "rules_pkg",

View File

@ -3,7 +3,7 @@ load("//tools/bzl:glsl.bzl", "glsl_binary")
glsl_binary(
name = "forward_vert",
srcs = [
"forward.vert"
"forward.vert",
],
visibility = ["//engine:__pkg__"],
)
@ -11,7 +11,9 @@ glsl_binary(
glsl_binary(
name = "forward_frag",
srcs = [
"forward.frag"
"forward.frag",
"forward_brdf.frag",
#"forward_camera.frag",
],
visibility = ["//engine:__pkg__"],
)

0
third_party/shaderc/BUILD vendored Normal file
View File

91
third_party/shaderc/BUILD.external vendored Normal file
View File

@ -0,0 +1,91 @@
load("@abrasion//third_party/shaderc:build-version.bzl", "build_version")
build_version(
name = "build-version",
)
cc_library(
name = "libshaderc_util",
hdrs = [
"libshaderc_util/include/libshaderc_util/args.h",
"libshaderc_util/include/libshaderc_util/compiler.h",
"libshaderc_util/include/libshaderc_util/counting_includer.h",
"libshaderc_util/include/libshaderc_util/file_finder.h",
"libshaderc_util/include/libshaderc_util/io.h",
"libshaderc_util/include/libshaderc_util/mutex.h",
"libshaderc_util/include/libshaderc_util/resources.h",
"libshaderc_util/include/libshaderc_util/resources.inc",
"libshaderc_util/include/libshaderc_util/string_piece.h",
# should go to srcs?
"libshaderc_util/include/libshaderc_util/format.h",
"libshaderc_util/include/libshaderc_util/message.h",
"libshaderc_util/include/libshaderc_util/shader_stage.h",
"libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h",
"libshaderc_util/include/libshaderc_util/universal_unistd.h",
"libshaderc_util/include/libshaderc_util/version_profile.h",
],
srcs = [
"libshaderc_util/src/args.cc",
"libshaderc_util/src/compiler.cc",
"libshaderc_util/src/file_finder.cc",
"libshaderc_util/src/io.cc",
"libshaderc_util/src/message.cc",
"libshaderc_util/src/resources.cc",
"libshaderc_util/src/shader_stage.cc",
"libshaderc_util/src/spirv_tools_wrapper.cc",
"libshaderc_util/src/version_profile.cc",
],
deps = [
"@glslang//:glslang",
"@glslang//:SPIRV",
"@spirv_tools//:spirv_tools",
"@spirv_tools//:spirv_tools_opt",
],
strip_include_prefix = "libshaderc_util/include/",
)
cc_library(
name = "libshaderc",
hdrs = [
"libshaderc/include/shaderc/env.h",
"libshaderc/include/shaderc/shaderc.h",
"libshaderc/include/shaderc/shaderc.hpp",
"libshaderc/include/shaderc/status.h",
"libshaderc/include/shaderc/visibility.h",
],
srcs = [
"libshaderc/src/shaderc.cc",
"libshaderc/src/shaderc_private.h",
],
deps = [
":libshaderc_util",
],
strip_include_prefix = "libshaderc/include",
)
cc_binary(
name = "glslc",
srcs = [
"build-version",
"glslc/src/dependency_info.h",
"glslc/src/dependency_info.cc",
"glslc/src/file.h",
"glslc/src/file.cc",
"glslc/src/file_includer.h",
"glslc/src/file_includer.cc",
"glslc/src/file_compiler.h",
"glslc/src/file_compiler.cc",
"glslc/src/resource_parse.h",
"glslc/src/resource_parse.cc",
"glslc/src/shader_stage.h",
"glslc/src/shader_stage.cc",
"glslc/src/main.cc",
],
deps = [
":libshaderc",
":libshaderc_util",
],
)

26
third_party/shaderc/build-version.bzl vendored Normal file
View File

@ -0,0 +1,26 @@
load("//third_party/shaderc:version.bzl", "shaderc_version")
# Shaderc build-version.inc genrule.
# This replaces the python script from shaderc's release machinery, and instead
# generates a file with the same format using version strings defined in
# version.bzl.
def _build_version(ctx):
v_shaderc = shaderc_version["shaderc"][0]
v_spvtools = shaderc_version["spirv_tools"][0]
v_glslang = shaderc_version["glslang"][0]
versions = [
"shaderc v{} v{}-abrasion".format(v_shaderc, v_shaderc),
"spirv-tools v{} v{}-abrasion".format(v_spvtools, v_spvtools),
"glslang {}-abrasion".format(v_glslang),
]
out = "\n".join(['"{}\\n"'.format(v) for v in versions])
ctx.actions.write(ctx.outputs.inc, out + "\n")
build_version = rule(
implementation = _build_version,
outputs = {
"inc": "%{name}.inc",
},
)

22
third_party/shaderc/deps.bzl vendored Normal file
View File

@ -0,0 +1,22 @@
load("//third_party/shaderc:version.bzl", "shaderc_version")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# Shaderc workspace rules (external repositories).
# This downloads shaderc and its dependencies, at versions specified in
# version.bzl.
def _http_archive(name, strip_prefix, gh_name, **kw):
version, remote, sha = shaderc_version[name]
http_archive(
name = name,
sha256 = sha,
strip_prefix = "{}-{}".format(strip_prefix, remote),
url = "https://github.com/{}/archive/{}.tar.gz".format(gh_name, remote),
**kw,
)
def shaderc_deps():
_http_archive("spirv_headers", "SPIRV-Headers", "KhronosGroup/SPIRV-Headers")
_http_archive("spirv_tools", "SPIRV-Tools", "KhronosGroup/SPIRV-Tools")
_http_archive("glslang", "glslang", "KhronosGroup/glslang")
_http_archive("shaderc", "shaderc", "google/shaderc", build_file="//third_party/shaderc:BUILD.external")

13
third_party/shaderc/version.bzl vendored Normal file
View File

@ -0,0 +1,13 @@
# Shaderc version definitions.
# This should mirror DEPS from github.com/google/shaderc, but you will need two
# extra things that aren't there:
# - the sha256 of the tarball
# - the pretty 'release' version of the tool (which you can get from the changelog)
shaderc_version = {
# dep: (version, GH remote ver, sha256)
"shaderc": ("2020.2", "2020.2", "a4d5680d4f0199e29ab77b357c88c147c5704f9ee2ac0a2d117e640e6f87d030"),
"spirv_tools": ("2020.5", "969f0286479b89267b6c89f6d5223285c265e6ae", "6915b4bca8b2369e26812ffb3c1b726089bb9cd38d1cb7e9b8ef0d3bb7dd8162"),
"spirv_headers": ("2020.5", "979924c8bc839e4cb1b69d03d48398551f369ce7", "7ebc04ebb4602c051d4886c9544de684195adac2a179e949469d29beb1f034e4"),
"glslang": ("11.0.0-dev", "3ee5f2f1d3316e228916788b300d786bb574d337", "7b2f8b93958c7594942f730659c00dec0bffeafaa6853b67b5f72f915c287b1f"),
}