third_party/shaderc: init
parent
c87865d16e
commit
f5ae25214a
|
@ -33,12 +33,8 @@ rust_repository_set(
|
||||||
load("@io_bazel_rules_rust//:workspace.bzl", "bazel_version")
|
load("@io_bazel_rules_rust//:workspace.bzl", "bazel_version")
|
||||||
bazel_version(name = "bazel_version")
|
bazel_version(name = "bazel_version")
|
||||||
|
|
||||||
http_archive(
|
load("//third_party/shaderc:deps.bzl", "shaderc_deps")
|
||||||
name = "glslang",
|
shaderc_deps()
|
||||||
sha256 = "0b79a120ac7826ac31bcd47ba3e11d79d8d2709bfaf17125aa759eeec6799dd3",
|
|
||||||
strip_prefix = "glslang-b0ada80356ca7b560c600b93a596af1331442542",
|
|
||||||
url = "https://github.com/KhronosGroup/glslang/archive/b0ada80356ca7b560c600b93a596af1331442542.tar.gz",
|
|
||||||
)
|
|
||||||
|
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "rules_pkg",
|
name = "rules_pkg",
|
||||||
|
|
|
@ -3,7 +3,7 @@ load("//tools/bzl:glsl.bzl", "glsl_binary")
|
||||||
glsl_binary(
|
glsl_binary(
|
||||||
name = "forward_vert",
|
name = "forward_vert",
|
||||||
srcs = [
|
srcs = [
|
||||||
"forward.vert"
|
"forward.vert",
|
||||||
],
|
],
|
||||||
visibility = ["//engine:__pkg__"],
|
visibility = ["//engine:__pkg__"],
|
||||||
)
|
)
|
||||||
|
@ -11,7 +11,9 @@ glsl_binary(
|
||||||
glsl_binary(
|
glsl_binary(
|
||||||
name = "forward_frag",
|
name = "forward_frag",
|
||||||
srcs = [
|
srcs = [
|
||||||
"forward.frag"
|
"forward.frag",
|
||||||
|
"forward_brdf.frag",
|
||||||
|
#"forward_camera.frag",
|
||||||
],
|
],
|
||||||
visibility = ["//engine:__pkg__"],
|
visibility = ["//engine:__pkg__"],
|
||||||
)
|
)
|
||||||
|
|
|
@ -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",
|
||||||
|
],
|
||||||
|
)
|
|
@ -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",
|
||||||
|
},
|
||||||
|
)
|
|
@ -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")
|
|
@ -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"),
|
||||||
|
}
|
Loading…
Reference in New Issue