third_party/q3d: namespaces, models, python

This bumps q3d for q3dm support, fixes Rust namespacing and adds Python
support (for both the WORKSPACE and q3d).
master
q3k 2021-07-11 00:01:11 +00:00
parent 46f2d17dad
commit 9ba3f7e131
7 changed files with 123 additions and 35 deletions

View File

@ -2,6 +2,21 @@ workspace(name = "abrasion")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_python",
url = "https://github.com/bazelbuild/rules_python/releases/download/0.3.0/rules_python-0.3.0.tar.gz",
sha256 = "934c9ceb552e84577b0faf1e5a2f0450314985b4d8712b2b70717dc679fdc01b",
)
load("@rules_python//python:pip.bzl", "pip_parse")
pip_parse(
name = "pydeps",
requirements_lock = "//third_party/py:requirements.txt",
)
load("@pydeps//:requirements.bzl", "install_deps")
install_deps()
http_archive(
name = "rules_rust",
strip_prefix = "rules_rust-feaeb7ab712da45c1c94f7950e799d79e367ddeb",
@ -47,16 +62,14 @@ http_archive(
http_archive(
name = "com_github_q3k_q3d",
sha256 = "7631310022b09447279ac227cf84045b8b552f9c863d6fe17d459e506058a9b7",
strip_prefix = "q3d-360206ac7487da4a6d86fd22f9e74e8731454f43",
sha256 = "6cfbbd8111e78ae99d631f147cc2314f088409320619660c8003cd52bcc4577e",
strip_prefix = "q3d-e507a91e1b4966d0d4425e6078f6f1feda68a2b5",
urls = [
"https://github.com/q3k/q3d/archive/360206ac7487da4a6d86fd22f9e74e8731454f43.tar.gz",
"https://github.com/q3k/q3d/archive/e507a91e1b4966d0d4425e6078f6f1feda68a2b5.tar.gz",
],
build_file = "//third_party/q3d:BUILD",
build_file = "//third_party/q3d:BUILD.external",
)
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b",
@ -72,8 +85,6 @@ go_rules_dependencies()
go_register_toolchains(version = "1.16")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_google_protobuf",
sha256 = "9748c0d90e54ea09e5e75fb7fac16edce15d2028d4356f32211cfa3c0e956564",
@ -83,4 +94,4 @@ http_archive(
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
protobuf_deps()
protobuf_deps()

0
third_party/py/BUILD.bazel vendored Normal file
View File

1
third_party/py/requirements.txt vendored Normal file
View File

@ -0,0 +1 @@
flatbuffers==2.0

26
third_party/q3d/BUILD vendored
View File

@ -1,26 +0,0 @@
load("@rules_rust//rust:rust.bzl", "rust_library")
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_library_public")
flatbuffer_library_public(
name = "q3d_rs_src",
srcs = [
":q3d_object.fbs",
],
outs = [
"q3d_object_generated.rs",
],
language_flag = "--rust",
)
rust_library(
name = "q3d_rs",
edition = "2018",
srcs = [
":q3d_rs_src",
],
visibility = ["//visibility:public"],
deps = [
# ew.
"@//third_party/cargo:flatbuffers",
],
)

32
third_party/q3d/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,32 @@
load("@rules_rust//rust:rust.bzl", "rust_library")
genrule(
name = "q3d_rs_layout",
srcs = [
"@com_github_q3k_q3d//:q3d_object_generated.rs",
"@com_github_q3k_q3d//:q3d_model_generated.rs",
"lib_.rs",
],
outs = [
"q3d_object_generated.rs",
"q3d_model_generated.rs",
"lib.rs",
],
cmd_bash = """
cp $(location @com_github_q3k_q3d//:q3d_object_generated.rs) $(location q3d_object_generated.rs)
cp $(location @com_github_q3k_q3d//:q3d_model_generated.rs) $(location q3d_model_generated.rs)
cp $(location lib_.rs) $(location lib.rs)
""",
)
rust_library(
name = "q3d_rs",
edition = "2018",
srcs = [
":q3d_rs_layout",
],
visibility = ["//visibility:public"],
deps = [
"@abrasion//third_party/cargo:flatbuffers",
],
)

65
third_party/q3d/BUILD.external vendored Normal file
View File

@ -0,0 +1,65 @@
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_library_public")
load("@rules_python//python:defs.bzl", "py_library")
package(
default_visibility = [
"//visibility:public",
],
)
flatbuffer_library_public(
name = "q3d_rs_src",
srcs = [
":q3d_object.fbs",
":q3d_model.fbs",
],
outs = [
"q3d_object_generated.rs",
"q3d_model_generated.rs",
],
language_flag = "--rust",
)
flatbuffer_library_public(
name = "q3d_py_src",
srcs = [
":q3d_object.fbs",
":q3d_model.fbs",
],
flatc_args = [
"--gen-object-api",
"--gen-compare",
"--gen-mutable",
"--reflect-names",
"--cpp-ptr-type flatbuffers::unique_ptr",
],
outs = [
"Q3DObject/__init__.py",
"Q3DObject/Color.py",
"Q3DObject/ITriangle.py",
"Q3DObject/Material.py",
"Q3DObject/Mesh.py",
"Q3DObject/Object.py",
"Q3DObject/Triangle.py",
"Q3DObject/UV.py",
"Q3DObject/Vector3.py",
"Q3DObject/Vector4.py",
"Q3DObject/Vertex.py",
"Q3DModel/__init__.py",
"Q3DModel/Matrix4.py",
"Q3DModel/Model.py",
"Q3DModel/Node.py",
],
language_flag = "--python",
)
py_library(
name = "q3d_py",
visibility = [
"//visibility:public",
],
srcs = [
":q3d_py_src",
],
imports = ["."],
)

5
third_party/q3d/lib_.rs vendored Normal file
View File

@ -0,0 +1,5 @@
mod q3d_object_generated;
mod q3d_model_generated;
pub use q3d_object_generated::*;
pub use q3d_model_generated::*;