Skip to content

Commit

Permalink
Fix reflection.fbs import path
Browse files Browse the repository at this point in the history
We need to copy the .fbs files into the package used for .bfbs files.
This is necessary as flatc doesn't provide support to specify the full
output file name for an .fbs file in a different folder.
I tried OUTPUT_FILE env var but this doesn't seem to be honored by
flatc.
  • Loading branch information
mering committed Jan 23, 2025
1 parent 0c32245 commit 44a8091
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
4 changes: 3 additions & 1 deletion build_defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ def flatbuffer_library_public(
reflection_genrule_cmd = " ".join([
"SRCS=($(SRCS));",
"for f in $${SRCS[@]:0:%s}; do" % len(srcs),
'if [[ $$(dirname $$f) != "{0}" ]]; then s="$$f"; f="{0}/$$(basename "$$f")"; mkdir -p "{0}"; mv "$$s" "$$f"; fi;'.format(native.package_relative_label(":invalid").package),
"$(location %s)" % (TRUE_FLATC_PATH),
"-b --schema",
" ".join(flatc_args),
Expand All @@ -152,9 +153,10 @@ def flatbuffer_library_public(
"done",
])
reflection_outs = [
(out_prefix + "%s.bfbs") % (s.replace(".fbs", "").split("/")[-1])
(out_prefix + "%s.bfbs") % (native.package_relative_label(s).name.removesuffix(".fbs"))
for s in srcs
]

native.genrule(
name = "%s_srcs" % reflection_name,
srcs = srcs + includes,
Expand Down
6 changes: 6 additions & 0 deletions reflection/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ filegroup(
visibility = ["//visibility:public"],
)

# Needed by build_defs.bzl to copy the file to the evaluating package
exports_files(
srcs = ["reflection.fbs"],
visibility = ["//visibility:public"],
)

filegroup(
name = "reflection_fbs_schema",
srcs = ["reflection.fbs"],
Expand Down
9 changes: 1 addition & 8 deletions reflection/ts/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
load("//:typescript.bzl", "flatbuffer_ts_library")

genrule(
name = "copy_schema_to_folder",
srcs = ["//reflection:reflection_fbs_schema"],
outs = ["reflection.fbs"],
cmd = "cp $< $@",
)

flatbuffer_ts_library(
name = "reflection_ts_fbs",
srcs = [":reflection.fbs"],
srcs = ["//reflection:reflection.fbs"],
gen_reflections = True,
visibility = ["//visibility:public"],
)
1 change: 1 addition & 0 deletions tests/ts/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ flatbuffer_ts_library(
name = "typescript_ts_fbs",
srcs = ["typescript_keywords.fbs"],
deps = [
"//reflection/ts:reflection_ts_fbs",
"//tests/ts/test_dir:include_ts_fbs",
"//tests/ts/test_dir:typescript_transitive_ts_fbs",
],
Expand Down
2 changes: 1 addition & 1 deletion typescript.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def flatbuffer_ts_library(
reflection binaries for the schemas.
"""
srcs_lib = "%s_srcs" % (name)
out_base = [s.replace(".fbs", "").split("/")[-1].split(":")[-1] for s in srcs]
out_base = [native.package_relative_label(s).name.removesuffix(".fbs") for s in srcs]

if len(srcs) != 1:
fail("flatbuffer_ts_library only supports one .fbs file per target currently.")
Expand Down

0 comments on commit 44a8091

Please sign in to comment.