diff options
author | Björn Harrtell <bjornharrtell@users.noreply.github.com> | 2023-01-21 21:22:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-21 12:22:22 -0800 |
commit | ef76b5ece4d6ff06bebf04f42e41a50427263ae3 (patch) | |
tree | d91b74372601c7f4990f221b5722094021fdf729 /build_defs.bzl | |
parent | 1703662285f5b2a2ee1a151b17755fd709ad2e13 (diff) | |
download | flatbuffers-ef76b5ece4d6ff06bebf04f42e41a50427263ae3.tar.gz flatbuffers-ef76b5ece4d6ff06bebf04f42e41a50427263ae3.tar.bz2 flatbuffers-ef76b5ece4d6ff06bebf04f42e41a50427263ae3.zip |
[TS/JS] Entry point per namespace and reworked 1.x compatible single file build (#7510)
* [TS/JS] Entry point per namespace
* Fix handling of outputpath and array_test
* Attempt to fix generate_code
* Fix cwd for ts in generate_code
* Attempt to fixup bazel and some docs
* Add --ts-flat-files to bazel build to get bundle
* Move to DEFAULT_FLATC_TS_ARGS
* Attempt to add esbuild
* Attempt to use npm instead
* Remove futile attempt to add esbuild
* Attempt to as bazel esbuild
* Shuffle
* Upgrade bazel deps
* Revert failed attempts to get bazel working
* Ignore flatc tests for now
* Add esbuild dependency
* `package.json` Include esbuild
* `WORKSPACE` Add fetching esbuild binary
* Update WORKSPACE
* Unfreeze Lockfile
* Update WORKSPACE
* Update BUILD.bazel
* Rework to suggest instead of running external bundler
* Add esbuild generation to test script
* Prelim bundle test
* Run test JavaScriptTest from flatbuffers 1.x
* Deps upgrade
* Clang format fix
* Revert bazel changes
* Fix newline
* Generate with type declarations
* Handle "empty" root namespace
* Adjust tests for typescript_keywords.ts
* Separate test procedure for old node resolution module output
* Fix rel path for root level re-exports
* Bazel support for esbuild-based flatc
Unfortunately, we lose typing information because the new esbuild method
of generating single files does not generate type information.
The method used here is a bit hack-ish because it relies on parsing the
console output of flatc to figure out what to do.
* Try to fix bazel build for when node isn't present on host
* Auto formatting fixes
* Fix missing generated code
Co-authored-by: Derek Bailey <derekbailey@google.com>
Co-authored-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
Diffstat (limited to 'build_defs.bzl')
-rw-r--r-- | build_defs.bzl | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/build_defs.bzl b/build_defs.bzl index 22949b9e..66b22d2e 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -7,7 +7,7 @@ Rules for building C++ flatbuffers with Bazel. load("@rules_cc//cc:defs.bzl", "cc_library") -flatc_path = "@com_github_google_flatbuffers//:flatc" +TRUE_FLATC_PATH = "@com_github_google_flatbuffers//:flatc" DEFAULT_INCLUDE_PATHS = [ "./", @@ -16,6 +16,14 @@ DEFAULT_INCLUDE_PATHS = [ "$(execpath @com_github_google_flatbuffers//:flatc).runfiles/com_github_google_flatbuffers", ] +def default_include_paths(flatc_path): + return [ + "./", + "$(GENDIR)", + "$(BINDIR)", + "$(execpath %s).runfiles/com_github_google_flatbuffers" % (flatc_path), + ] + DEFAULT_FLATC_ARGS = [ "--gen-object-api", "--gen-compare", @@ -32,13 +40,14 @@ def flatbuffer_library_public( language_flag, out_prefix = "", includes = [], - include_paths = DEFAULT_INCLUDE_PATHS, + include_paths = None, flatc_args = DEFAULT_FLATC_ARGS, reflection_name = "", reflection_visibility = None, compatible_with = None, restricted_to = None, target_compatible_with = None, + flatc_path = "@com_github_google_flatbuffers//:flatc", output_to_bindir = False): """Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler. @@ -62,6 +71,7 @@ def flatbuffer_library_public( for, instead of default-supported environments. target_compatible_with: Optional, The list of target platform constraints to use. + flatc_path: Bazel target corresponding to the flatc compiler to use. output_to_bindir: Passed to genrule for output to bin directory. @@ -69,6 +79,8 @@ def flatbuffer_library_public( optionally a Fileset([reflection_name]) with all generated reflection binaries. """ + if include_paths == None: + include_paths = default_include_paths(flatc_path) include_paths_cmd = ["-I %s" % (s) for s in include_paths] # '$(@D)' when given a single source target will give the appropriate @@ -80,7 +92,7 @@ def flatbuffer_library_public( genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "$(location %s)" % (flatc_path), + "OUTPUT_FILE=\"$(OUTS)\" $(location %s)" % (flatc_path), " ".join(include_paths_cmd), " ".join(flatc_args), language_flag, @@ -104,7 +116,7 @@ def flatbuffer_library_public( reflection_genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "$(location %s)" % (flatc_path), + "$(location %s)" % (TRUE_FLATC_PATH), "-b --schema", " ".join(flatc_args), " ".join(include_paths_cmd), @@ -122,7 +134,7 @@ def flatbuffer_library_public( srcs = srcs + includes, outs = reflection_outs, output_to_bindir = output_to_bindir, - tools = [flatc_path], + tools = [TRUE_FLATC_PATH], compatible_with = compatible_with, restricted_to = restricted_to, target_compatible_with = target_compatible_with, @@ -145,7 +157,7 @@ def flatbuffer_cc_library( out_prefix = "", deps = [], includes = [], - include_paths = DEFAULT_INCLUDE_PATHS, + include_paths = None, cc_include_paths = [], flatc_args = DEFAULT_FLATC_ARGS, visibility = None, |