diff --git a/build_defs.bzl b/build_defs.bzl index f9d8597be98..21067f06b47 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -142,6 +142,8 @@ def flatbuffer_library_public( reflection_genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), + # Move the .fbs file into the current package if it is not there already + '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), @@ -152,9 +154,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, diff --git a/reflection/BUILD.bazel b/reflection/BUILD.bazel index 4bdada5b8b9..7ab995e7f5c 100644 --- a/reflection/BUILD.bazel +++ b/reflection/BUILD.bazel @@ -7,6 +7,12 @@ filegroup( visibility = ["//visibility:public"], ) +# flatbuffer_ts_library() only supports .fbs file but not filegroups +exports_files( + srcs = ["reflection.fbs"], + visibility = ["//visibility:public"], +) + filegroup( name = "reflection_fbs_schema", srcs = ["reflection.fbs"], diff --git a/reflection/ts/BUILD.bazel b/reflection/ts/BUILD.bazel index 0b3dfbe9af3..ca9701d2a14 100644 --- a/reflection/ts/BUILD.bazel +++ b/reflection/ts/BUILD.bazel @@ -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"], ) diff --git a/tests/ts/BUILD.bazel b/tests/ts/BUILD.bazel index ee97f8fde70..4df03b4217a 100644 --- a/tests/ts/BUILD.bazel +++ b/tests/ts/BUILD.bazel @@ -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", ], diff --git a/typescript.bzl b/typescript.bzl index 994488bb96a..c26211b3293 100644 --- a/typescript.bzl +++ b/typescript.bzl @@ -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.")