From b06e51c96d05464727af4f4ea11173fab46b39da Mon Sep 17 00:00:00 2001 From: Mike Aizatsky Date: Mon, 30 Sep 2024 09:44:51 -0700 Subject: [PATCH] [nfc] wd_rust_capnp_library and wd_capnp_library (#2794) wd_capnp_library generates both c++ and rust versions --- .bazelrc | 1 + build/deps/gen/dep_capnp_cpp.bzl | 8 +- build/wd_capnp_library.bzl | 37 ++++++ build/wd_rust_capnp_library.bzl | 11 ++ deps/rust/Cargo.lock | 26 ++++ deps/rust/cargo.bzl | 2 + deps/rust/crates/BUILD.bazel | 24 ++++ deps/rust/crates/BUILD.capnp-0.20.1.bazel | 49 +++++++ deps/rust/crates/BUILD.capnpc-0.20.0.bazel | 125 ++++++++++++++++++ .../rust/crates/BUILD.embedded-io-0.6.1.bazel | 44 ++++++ deps/rust/crates/defs.bzl | 34 +++++ src/workerd/api/BUILD.bazel | 18 +-- src/workerd/api/node/BUILD.bazel | 2 +- src/workerd/io/BUILD.bazel | 67 +++------- src/workerd/server/BUILD.bazel | 19 +-- 15 files changed, 383 insertions(+), 84 deletions(-) create mode 100644 build/wd_capnp_library.bzl create mode 100644 build/wd_rust_capnp_library.bzl create mode 100644 deps/rust/crates/BUILD.capnp-0.20.1.bazel create mode 100644 deps/rust/crates/BUILD.capnpc-0.20.0.bazel create mode 100644 deps/rust/crates/BUILD.embedded-io-0.6.1.bazel diff --git a/.bazelrc b/.bazelrc index 1bcf8a845dd..c75186b55b5 100644 --- a/.bazelrc +++ b/.bazelrc @@ -134,6 +134,7 @@ build:limited-dbg-info --copt='-g1' --copt="-fdebug-info-for-profiling" # Miscellaneous platform-independent options build --@capnp-cpp//src/kj:openssl=True --@capnp-cpp//src/kj:zlib=True --@capnp-cpp//src/kj:brotli=True build --cxxopt="-fbracket-depth=512" --host_cxxopt="-fbracket-depth=512" +build --@capnp-cpp//src/capnp:gen_rust=True # Additional Rust flags (see https://doc.rust-lang.org/rustc/codegen-options/index.html) # Need to disable debug-assertions for fastbuild, should be off automatically for opt. As long as diff --git a/build/deps/gen/dep_capnp_cpp.bzl b/build/deps/gen/dep_capnp_cpp.bzl index d4da0e0bb97..fa23d697f60 100644 --- a/build/deps/gen/dep_capnp_cpp.bzl +++ b/build/deps/gen/dep_capnp_cpp.bzl @@ -2,11 +2,11 @@ load("@//:build/http.bzl", "http_archive") -URL = "https://github.com/capnproto/capnproto/tarball/cd7b20ad0dbd0b1917d0dc3178f7ba05639ea65d" -STRIP_PREFIX = "capnproto-capnproto-cd7b20a/c++" -SHA256 = "2cf78cbc45ab306a7d71de0eac62f1317a976a3be75339a1df80abd187edd7a3" +URL = "https://github.com/capnproto/capnproto/tarball/b279a2776d13c997689fb0a36ea9f1c91e881aba" +STRIP_PREFIX = "capnproto-capnproto-b279a27/c++" +SHA256 = "f633ccd5922b512c3aea69c861340149ad2aa51f389ba5aca50f01334d23b9a9" TYPE = "tgz" -COMMIT = "cd7b20ad0dbd0b1917d0dc3178f7ba05639ea65d" +COMMIT = "b279a2776d13c997689fb0a36ea9f1c91e881aba" def dep_capnp_cpp(): http_archive( diff --git a/build/wd_capnp_library.bzl b/build/wd_capnp_library.bzl new file mode 100644 index 00000000000..ec152e9e245 --- /dev/null +++ b/build/wd_capnp_library.bzl @@ -0,0 +1,37 @@ +load("//:build/wd_cc_capnp_library.bzl", "wd_cc_capnp_library") +load("//:build/wd_rust_capnp_library.bzl", "wd_rust_capnp_library") + +def wd_capnp_library( + src, + deps = [], + tags = [], + target_compatible_with = None, + visibility = ["//visibility:public"]): + """Generates capnp library for multiple languages. + + For a given file-name.capnp it will produce: + - `file-name_capnp` c++ library + - `file-name_capnp_rust` rust library + """ + base_name = src.removesuffix(".capnp") + + wd_cc_capnp_library( + name = base_name + "_capnp", + visibility = visibility, + deps = deps, + srcs = [src], + tags = ["manual"] + tags, + target_compatible_with = target_compatible_with, + ) + + rust_deps = [dep + "_rust" if dep.endswith("_capnp") else dep for dep in deps] + + wd_rust_capnp_library( + name = base_name + "_capnp_rust", + crate_name = base_name.replace("-", "_") + "_capnp", + visibility = visibility, + deps = rust_deps, + srcs = [src], + tags = ["manual"] + tags, + target_compatible_with = target_compatible_with, + ) diff --git a/build/wd_rust_capnp_library.bzl b/build/wd_rust_capnp_library.bzl new file mode 100644 index 00000000000..1386b878f6b --- /dev/null +++ b/build/wd_rust_capnp_library.bzl @@ -0,0 +1,11 @@ +"""wd_rust_capnp_library definition""" + +load("@capnp-cpp//src/capnp:rust_capnp_library.bzl", "rust_capnp_library") + +def wd_rust_capnp_library(**kwargs): + """Wrapper for rust_capnp_library that sets common attributes + """ + rust_capnp_library( + src_prefix = "src", + **kwargs + ) diff --git a/deps/rust/Cargo.lock b/deps/rust/Cargo.lock index f76ac9b737f..a402c81df84 100644 --- a/deps/rust/Cargo.lock +++ b/deps/rust/Cargo.lock @@ -44,6 +44,24 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "capnp" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561371d076e2d68725cfdf0e7af11a7609fb2d933b478b56e384e30eafef13ad" +dependencies = [ + "embedded-io", +] + +[[package]] +name = "capnpc" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d13cb6e2643fd1f9fb804ba938323636ef52e07d6e495e372d933ad0cb98207" +dependencies = [ + "capnp", +] + [[package]] name = "cc" version = "1.1.21" @@ -129,6 +147,8 @@ name = "direct-cargo-bazel-deps" version = "0.0.1" dependencies = [ "anyhow", + "capnp", + "capnpc", "clang-ast", "flate2", "lolhtml", @@ -152,6 +172,12 @@ dependencies = [ "dtoa", ] +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "encoding_rs" version = "0.8.34" diff --git a/deps/rust/cargo.bzl b/deps/rust/cargo.bzl index 419faa66a71..903cf3fcd17 100644 --- a/deps/rust/cargo.bzl +++ b/deps/rust/cargo.bzl @@ -31,4 +31,6 @@ PACKAGES = RTTI_PACKAGES | { git = "https://github.com/cloudflare/lol-html.git", rev = "7db3d8d9fa9f3fee6ffe36c3f68f14e160476e07", ), + "capnp": crate.spec(version = "0.20"), + "capnpc": crate.spec(version = "0.20"), } diff --git a/deps/rust/crates/BUILD.bazel b/deps/rust/crates/BUILD.bazel index bb9014ceee6..92b30c40244 100644 --- a/deps/rust/crates/BUILD.bazel +++ b/deps/rust/crates/BUILD.bazel @@ -37,6 +37,18 @@ alias( tags = ["manual"], ) +alias( + name = "capnp", + actual = "@crates_vendor__capnp-0.20.1//:capnp", + tags = ["manual"], +) + +alias( + name = "capnpc", + actual = "@crates_vendor__capnpc-0.20.0//:capnpc", + tags = ["manual"], +) + alias( name = "clang-ast", actual = "@crates_vendor__clang-ast-0.1.26//:clang_ast", @@ -74,6 +86,18 @@ alias( ) # Binaries +alias( + name = "capnpc__capnpc-rust", + actual = "@crates_vendor__capnpc-0.20.0//:capnpc-rust__bin", + tags = ["manual"], +) + +alias( + name = "capnpc__capnpc-rust-bootstrap", + actual = "@crates_vendor__capnpc-0.20.0//:capnpc-rust-bootstrap__bin", + tags = ["manual"], +) + alias( name = "phf_generator__gen_hash_test", actual = "@crates_vendor__phf_generator-0.8.0//:gen_hash_test__bin", diff --git a/deps/rust/crates/BUILD.capnp-0.20.1.bazel b/deps/rust/crates/BUILD.capnp-0.20.1.bazel new file mode 100644 index 00000000000..0773050d3cb --- /dev/null +++ b/deps/rust/crates/BUILD.capnp-0.20.1.bazel @@ -0,0 +1,49 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @//deps/rust:crates_vendor +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "capnp", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=capnp", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.20.1", +) diff --git a/deps/rust/crates/BUILD.capnpc-0.20.0.bazel b/deps/rust/crates/BUILD.capnpc-0.20.0.bazel new file mode 100644 index 00000000000..67cac267118 --- /dev/null +++ b/deps/rust/crates/BUILD.capnpc-0.20.0.bazel @@ -0,0 +1,125 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @//deps/rust:crates_vendor +############################################################################### + +load( + "@rules_rust//rust:defs.bzl", + "rust_binary", + "rust_library", +) + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "capnpc", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=capnpc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.20.0", + deps = [ + "@crates_vendor__capnp-0.20.1//:capnp", + ], +) + +rust_binary( + name = "capnpc-rust__bin", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/capnpc-rust.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=capnpc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.20.0", + deps = [ + ":capnpc", + "@crates_vendor__capnp-0.20.1//:capnp", + ], +) + +rust_binary( + name = "capnpc-rust-bootstrap__bin", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/capnpc-rust-bootstrap.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=capnpc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.20.0", + deps = [ + ":capnpc", + "@crates_vendor__capnp-0.20.1//:capnp", + ], +) diff --git a/deps/rust/crates/BUILD.embedded-io-0.6.1.bazel b/deps/rust/crates/BUILD.embedded-io-0.6.1.bazel new file mode 100644 index 00000000000..4c7ff75d1b7 --- /dev/null +++ b/deps/rust/crates/BUILD.embedded-io-0.6.1.bazel @@ -0,0 +1,44 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @//deps/rust:crates_vendor +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "embedded_io", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=embedded-io", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.6.1", +) diff --git a/deps/rust/crates/defs.bzl b/deps/rust/crates/defs.bzl index 579e9159149..c80f3dc81ad 100644 --- a/deps/rust/crates/defs.bzl +++ b/deps/rust/crates/defs.bzl @@ -297,6 +297,8 @@ _NORMAL_DEPENDENCIES = { "": { _COMMON_CONDITION: { "anyhow": Label("@crates_vendor__anyhow-1.0.89//:anyhow"), + "capnp": Label("@crates_vendor__capnp-0.20.1//:capnp"), + "capnpc": Label("@crates_vendor__capnpc-0.20.0//:capnpc"), "clang-ast": Label("@crates_vendor__clang-ast-0.1.26//:clang_ast"), "flate2": Label("@crates_vendor__flate2-1.0.33//:flate2"), "lolhtml": Label("@crates_vendor__lolhtml-1.1.1//:lolhtml"), @@ -445,6 +447,26 @@ def crate_repositories(): build_file = Label("@workerd//deps/rust/crates:BUILD.byteorder-1.5.0.bazel"), ) + maybe( + http_archive, + name = "crates_vendor__capnp-0.20.1", + sha256 = "561371d076e2d68725cfdf0e7af11a7609fb2d933b478b56e384e30eafef13ad", + type = "tar.gz", + urls = ["https://static.crates.io/crates/capnp/0.20.1/download"], + strip_prefix = "capnp-0.20.1", + build_file = Label("@workerd//deps/rust/crates:BUILD.capnp-0.20.1.bazel"), + ) + + maybe( + http_archive, + name = "crates_vendor__capnpc-0.20.0", + sha256 = "8d13cb6e2643fd1f9fb804ba938323636ef52e07d6e495e372d933ad0cb98207", + type = "tar.gz", + urls = ["https://static.crates.io/crates/capnpc/0.20.0/download"], + strip_prefix = "capnpc-0.20.0", + build_file = Label("@workerd//deps/rust/crates:BUILD.capnpc-0.20.0.bazel"), + ) + maybe( http_archive, name = "crates_vendor__cc-1.1.21", @@ -545,6 +567,16 @@ def crate_repositories(): build_file = Label("@workerd//deps/rust/crates:BUILD.dtoa-short-0.3.5.bazel"), ) + maybe( + http_archive, + name = "crates_vendor__embedded-io-0.6.1", + sha256 = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/embedded-io/0.6.1/download"], + strip_prefix = "embedded-io-0.6.1", + build_file = Label("@workerd//deps/rust/crates:BUILD.embedded-io-0.6.1.bazel"), + ) + maybe( http_archive, name = "crates_vendor__encoding_rs-0.8.34", @@ -1126,6 +1158,8 @@ def crate_repositories(): return [ struct(repo = "crates_vendor__anyhow-1.0.89", is_dev_dep = False), + struct(repo = "crates_vendor__capnp-0.20.1", is_dev_dep = False), + struct(repo = "crates_vendor__capnpc-0.20.0", is_dev_dep = False), struct(repo = "crates_vendor__clang-ast-0.1.26", is_dev_dep = False), struct(repo = "crates_vendor__flate2-1.0.33", is_dev_dep = False), struct(repo = "crates_vendor__lolhtml-1.1.1", is_dev_dep = False), diff --git a/src/workerd/api/BUILD.bazel b/src/workerd/api/BUILD.bazel index f9bc21f4771..45492327a46 100644 --- a/src/workerd/api/BUILD.bazel +++ b/src/workerd/api/BUILD.bazel @@ -1,6 +1,6 @@ load("@aspect_rules_ts//ts:defs.bzl", "ts_project") load("//:build/kj_test.bzl", "kj_test") -load("//:build/wd_cc_capnp_library.bzl", "wd_cc_capnp_library") +load("//:build/wd_capnp_library.bzl", "wd_capnp_library") load("//:build/wd_cc_library.bzl", "wd_cc_library") load("//:build/wd_test.bzl", "wd_test") @@ -136,7 +136,7 @@ wd_cc_library( visibility = ["//visibility:public"], deps = [ ":util", - "//src/workerd/io:compatibility_date_capnp", + "//src/workerd/io:compatibility-date_capnp", "//src/workerd/jsg", "//src/workerd/util", "@capnp-cpp//src/kj", @@ -168,17 +168,9 @@ wd_cc_library( ], ) -wd_cc_capnp_library( - name = "r2-api_capnp", - srcs = ["r2-api.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "r2-api.capnp") -wd_cc_capnp_library( - name = "analytics-engine_capnp", - srcs = ["analytics-engine.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "analytics-engine.capnp") wd_cc_library( name = "url", @@ -187,7 +179,7 @@ wd_cc_library( implementation_deps = [":util"], visibility = ["//visibility:public"], deps = [ - "//src/workerd/io:compatibility_date_capnp", + "//src/workerd/io:compatibility-date_capnp", "//src/workerd/jsg", "@capnp-cpp//src/kj", ], diff --git a/src/workerd/api/node/BUILD.bazel b/src/workerd/api/node/BUILD.bazel index cfedeace1fa..9ae845bf287 100644 --- a/src/workerd/api/node/BUILD.bazel +++ b/src/workerd/api/node/BUILD.bazel @@ -54,7 +54,7 @@ wd_cc_library( ], visibility = ["//visibility:public"], deps = [ - "//src/workerd/io:compatibility_date_capnp", + "//src/workerd/io:compatibility-date_capnp", "//src/workerd/jsg", ], ) diff --git a/src/workerd/io/BUILD.bazel b/src/workerd/io/BUILD.bazel index d80c014c019..af47379e7e4 100644 --- a/src/workerd/io/BUILD.bazel +++ b/src/workerd/io/BUILD.bazel @@ -1,7 +1,7 @@ load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") load("//:build/capnp_embed.bzl", "capnp_embed") load("//:build/kj_test.bzl", "kj_test") -load("//:build/wd_cc_capnp_library.bzl", "wd_cc_capnp_library") +load("//:build/wd_capnp_library.bzl", "wd_capnp_library") load("//:build/wd_cc_library.bzl", "wd_cc_library") # Flag to enable WebGPU support via the Dawn library @@ -84,12 +84,13 @@ wd_cc_library( ":actor", ":actor-id", ":actor-storage_capnp", - ":capnp", + ":cdp_capnp", ":io-channels", ":io-gate", ":io-helpers", ":limit-enforcer", ":observer", + ":supported-compatibility-date_capnp", ":trace", ":worker-interface", "//src/cloudflare", @@ -247,71 +248,33 @@ capnp_embed( src = ":trimmed-supported-compatibility-date-gen", ) -# TODO(cleanup): Split this target up further, as many dependents don't need all the files here. -# Avoiding the dependency on supported-compatibility-date.capnp is often helpful due to the -# transitive dependency on `trimmed-supported-compatibility-date.txt` which is dynamically -# generated. -wd_cc_capnp_library( - name = "capnp", - srcs = [ - "cdp.capnp", - "supported-compatibility-date.capnp", - ], - visibility = ["//visibility:public"], +wd_capnp_library(src = "cdp.capnp") + +wd_capnp_library( + src = "supported-compatibility-date.capnp", deps = [ - ":compatibility_date_capnp", - ":features_capnp", - ":outcome_capnp", - ":script_version_capnp", ":trimmed-supported-compatibility-date", - "@capnp-cpp//src/capnp/compat:http-over-capnp_capnp", ], ) -wd_cc_capnp_library( - name = "worker-interface_capnp", - srcs = [ - "worker-interface.capnp", - ], - visibility = ["//visibility:public"], +wd_capnp_library( + src = "worker-interface.capnp", deps = [ ":outcome_capnp", - ":script_version_capnp", + ":script-version_capnp", "@capnp-cpp//src/capnp/compat:http-over-capnp_capnp", ], ) -wd_cc_capnp_library( - name = "actor-storage_capnp", - srcs = [ - "actor-storage.capnp", - ], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "actor-storage.capnp") -wd_cc_capnp_library( - name = "outcome_capnp", - srcs = ["outcome.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "outcome.capnp") -wd_cc_capnp_library( - name = "script_version_capnp", - srcs = ["script-version.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "script-version.capnp") -wd_cc_capnp_library( - name = "compatibility_date_capnp", - srcs = ["compatibility-date.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "compatibility-date.capnp") -wd_cc_capnp_library( - name = "features_capnp", - srcs = ["features.capnp"], - visibility = ["//visibility:public"], -) +wd_capnp_library(src = "features.capnp") kj_test( src = "io-gate-test.c++", diff --git a/src/workerd/server/BUILD.bazel b/src/workerd/server/BUILD.bazel index bf7db5f63d3..e5fe87dcf22 100644 --- a/src/workerd/server/BUILD.bazel +++ b/src/workerd/server/BUILD.bazel @@ -2,8 +2,8 @@ load("@bazel_skylib//lib:selects.bzl", "selects") load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") load("@bazel_skylib//rules:copy_file.bzl", "copy_file") load("//:build/kj_test.bzl", "kj_test") +load("//:build/wd_capnp_library.bzl", "wd_capnp_library") load("//:build/wd_cc_binary.bzl", "wd_cc_binary") -load("//:build/wd_cc_capnp_library.bzl", "wd_cc_capnp_library") load("//:build/wd_cc_library.bzl", "wd_cc_library") config_setting( @@ -144,20 +144,11 @@ wd_cc_library( ], ) -wd_cc_capnp_library( - name = "workerd_capnp", - srcs = ["workerd.capnp"], - visibility = ["//visibility:public"], - deps = [], -) +wd_capnp_library(src = "workerd.capnp") -wd_cc_capnp_library( - name = "workerd-meta_capnp", - srcs = ["workerd-meta.capnp"], - visibility = ["//visibility:public"], - deps = [ - ":workerd_capnp", - ], +wd_capnp_library( + src = "workerd-meta.capnp", + deps = [":workerd_capnp"], ) kj_test(