You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
include_top_level is pretty nice since it lets you build everything as a smoke test. But the generated target name comes across as pretty awkward; for example, given this snippet of a Cargo.toml, to be buckified and located at package third-party//rust:
[workspace]
[package]
name = "rust-third-party"version = "0.0.0"publish = falseedition = "2021"# Dummy target to keep Cargo happy
[[bin]]
name = "top"path = "top.rs"
[dependencies]
...
You get a fully-qualified target name like third-party//rust:rust-third-party-0.0.0-top, which is pretty verbose and annoying to write without tab completion in Buck.
To work around this, my reindeer.toml contains the following hack:
[buck]
file_name = "BUCK"rust_library = "cargo.rust_library"rust_binary = "cargo.rust_binary"buckfile_imports = """load("@prelude//rust:cargo_buildscript.bzl", "buildscript_run")load("@prelude//rust:cargo_package.bzl", "cargo")# XXX (aseipp): this is a hack to provide a convenient top-level alias.# this allows us to just build `third-party//rust` without a target name# to build everything we need.# this should probably be part of reindeer itself?alias( name = "rust", actual = ":rust-third-party-0.0.0-top", visibility = ["PUBLIC"],)# XXX: normal reindeer-generated code below"""
By giving the target the name rust, it becomes the default target for the package third-party//rust, and so buck2 build third-party//rust is enough to check that all my Cargo packages build. This is much more convenient.
It would be nice if there was a way to just specify what the name of the top-level target name is inside reindeer.toml, instead of needing this hack.
The text was updated successfully, but these errors were encountered:
include_top_level
is pretty nice since it lets you build everything as a smoke test. But the generated target name comes across as pretty awkward; for example, given this snippet of aCargo.toml
, to be buckified and located at packagethird-party//rust
:You get a fully-qualified target name like
third-party//rust:rust-third-party-0.0.0-top
, which is pretty verbose and annoying to write without tab completion in Buck.To work around this, my
reindeer.toml
contains the following hack:By giving the target the name
rust
, it becomes the default target for the packagethird-party//rust
, and sobuck2 build third-party//rust
is enough to check that all my Cargo packages build. This is much more convenient.It would be nice if there was a way to just specify what the name of the top-level target name is inside
reindeer.toml
, instead of needing this hack.The text was updated successfully, but these errors were encountered: