forked from BigfootDev/flatbuffers
* flatbuffers Rust reflection: replace num with num-traits num crate is a wrapper over num-traits and a few other crates, that reexports the APIs from all of them. We only need num-traits. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust reflection: drop dependency on stdint crate We only use it to get intmax_t for deriving alignment, which is an alias for `core::ffi::c_long` [1]. We can use that directly instead. [1] https://docs.rs/stdint/1.0.0/stdint/type.intmax_t.html Signed-off-by: Marcin Radomski <dextero@google.com> * Rust reflection: drop dependency on escape_string crate It's used to format a string used for debugging only, so we might as well use the builtin Debug representation of a string. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust codegen: add derives on generated bitflags Otherwise it limits the use of structs generated for reflection.fbs in Rust reflection API. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust flatbuffers: update bitflags dependency to 2.8 Signed-off-by: Marcin Radomski <dextero@google.com> * Rust codegen: use bitflags v2 API for converting from bits from_bits_unchecked was replaced with safe from_bits_retain. Signed-off-by: Marcin Radomski <dextero@google.com> * Regenerate Rust code after idl change Signed-off-by: Marcin Radomski <dextero@google.com> * Regenerate reflection_generated.rs With flatc --rust ../../../reflection/reflection.fbs Signed-off-by: Marcin Radomski <dextero@google.com> * ts/BUILD.bazel: add missing import Found by Buildifire presubmit: Function "sh_binary" is not global anymore and needs to be loaded from "@rules_shell//shell:sh_binary.bzl". Signed-off-by: Marcin Radomski <dextero@google.com> * Update expected value in generated_code_debug_prints_correctly test In bitflags v2, the debug string representation of enum values is different than it was in v1: Blue -> Color(Blue) (empty) -> LongEnum(0x0) This change adjusts the expected test value. Signed-off-by: Marcin Radomski <dextero@google.com> * Fix tests build on Swift 5.8 grpc-swift 1.4.1 depends on swift-nio-ssl 2.14.0+ [1]. swift-nio-ssl 2.29.1 published on 2025-01-30, introduced some code [2] that uses a "switch expression syntax" supported since Swift 5.9 [3]. Attempts to compile it with Swift 5.8 cause build errors. swift-nio-ssl project doesn't seem to support Swift 5.8. A commit from 2024-10-29 removes a "deprecated reference to a Swift 5.8 pipeline" [4]. swift-nio-ssl 2.29.0 is the last version that can be compiled with Swift 5.8. This commit pins it to that exact version. [1]66e27d7e84/Package.swift (L33)[2]3cb4d5ad12 (diff-bc1db1321ff689c2819245dcce1a3080554f0fc13f81b8d326c97e7d42717c8fR54)[3] https://github.com/swiftlang/swift-evolution/blob/main/proposals/0380-if-switch-expressions.md [4]8a6b89d9a4--------- Signed-off-by: Marcin Radomski <dextero@google.com> Co-authored-by: Marcin Radomski <dextero@google.com>
84 lines
2.0 KiB
Python
84 lines
2.0 KiB
Python
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
|
|
load("@aspect_rules_ts//ts:defs.bzl", "ts_project")
|
|
load("@flatbuffers_npm//:defs.bzl", "npm_link_all_packages")
|
|
load("@rules_shell//shell:sh_binary.bzl", "sh_binary")
|
|
|
|
filegroup(
|
|
name = "distribution",
|
|
srcs = [
|
|
"BUILD.bazel",
|
|
"compile_flat_file.sh",
|
|
"pnpm-lock.yaml",
|
|
] + glob([
|
|
"*.ts",
|
|
]),
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
npm_link_all_packages(name = "node_modules")
|
|
|
|
# Add an index to emulate the top-level package.json's "main" entry.
|
|
genrule(
|
|
name = "generate_index.ts",
|
|
outs = ["index.ts"],
|
|
cmd = """echo "export * from './flatbuffers.js'" > $(OUTS)""",
|
|
)
|
|
|
|
ts_project(
|
|
name = "flatbuffers_ts",
|
|
srcs = [
|
|
"builder.ts",
|
|
"byte-buffer.ts",
|
|
"constants.ts",
|
|
"encoding.ts",
|
|
"flatbuffers.ts",
|
|
"types.ts",
|
|
"utils.ts",
|
|
":index.ts",
|
|
],
|
|
declaration = True,
|
|
tsconfig = {
|
|
"compilerOptions": {
|
|
"module": "commonjs",
|
|
"declaration": True,
|
|
"moduleResolution": "node",
|
|
"lib": [
|
|
"ES2015",
|
|
"ES2020.BigInt",
|
|
"DOM",
|
|
],
|
|
"types": ["node"],
|
|
"strict": True,
|
|
},
|
|
},
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":node_modules/@types/node",
|
|
],
|
|
)
|
|
|
|
npm_package(
|
|
name = "flatbuffers",
|
|
srcs = [":flatbuffers_ts"],
|
|
include_external_repositories = ["*"],
|
|
package = "flatbuffers",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
sh_binary(
|
|
name = "compile_flat_file",
|
|
srcs = ["compile_flat_file.sh"],
|
|
data = [
|
|
"//:flatc",
|
|
"@nodejs_linux_amd64//:node_bin",
|
|
],
|
|
# We just depend directly on the linux amd64 nodejs binary, so only support
|
|
# running this script on amd64 for now.
|
|
target_compatible_with = [
|
|
"@platforms//cpu:x86_64",
|
|
"@platforms//os:linux",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = ["@bazel_tools//tools/bash/runfiles"],
|
|
)
|