Skip to content

Commit

Permalink
cli: add BUCK files
Browse files Browse the repository at this point in the history
The `grammar` macro from `pest_derive` doesn't actually interpret the given file
as relative in our case, so we have to give it the fully qualified relative path
which exists in the `buck-out/` dir.
  • Loading branch information
thoughtpolice committed May 15, 2024
1 parent 86a26ec commit 89231f7
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
2 changes: 2 additions & 0 deletions BUCK
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
alias(name = name, actual = actual)
for (name, actual) in [
# (top-level name, fully-qualified target name)
("jj", "//cli:jj"),
("jj-cli", "//cli:cli"),
("jj-lib", "//lib:lib"),
("proc-macros", "//lib/proc-macros:proc-macros"),
]
Expand Down
91 changes: 91 additions & 0 deletions cli/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@

load("//buck/shims/jj.bzl", "jj")

alias(
# NOTE: default target for this package
name = 'cli',
actual = ':jj',
visibility = [ 'PUBLIC' ],
)

jj.rust_binary(
name = 'jj',
srcs = ['src/main.rs'],
visibility = [ "PUBLIC" ],
features = [
"watchman",
],
linker_flags = [ '-lstdc++' ], # XXX FIXME (aseipp): should be implied by `bssl`
deps = [
":jj-cli",
],
)

jj.rust_library(
name = "jj-cli",
srcs = glob([
"src/**/*.rs",
"src/**/*.toml",
"src/**/*.json",
"src/**/*.pest",
], exclude = [
"**/main.rs"
]),

visibility = [ "PUBLIC" ],
features = [
"watchman",
],

deps = [
# first-party dependencies
"//lib:jj-lib",
] + [
# third-party dependencies
"third-party//rust:chrono",
"third-party//rust:clap",
"third-party//rust:clap-markdown",
"third-party//rust:clap_complete",
"third-party//rust:clap_complete_nushell",
"third-party//rust:clap_mangen",
"third-party//rust:config",
"third-party//rust:criterion",
"third-party//rust:crossterm",
"third-party//rust:dirs",
"third-party//rust:esl01-renderdag",
"third-party//rust:futures",
"third-party//rust:git2",
"third-party//rust:gix",
"third-party//rust:hex",
"third-party//rust:indexmap",
"third-party//rust:itertools",
"third-party//rust:maplit",
"third-party//rust:minus",
"third-party//rust:once_cell",
"third-party//rust:pest",
"third-party//rust:pest_derive",
"third-party//rust:pollster",
"third-party//rust:regex",
"third-party//rust:rpassword",
"third-party//rust:scm-record",
"third-party//rust:serde",
"third-party//rust:slab",
"third-party//rust:strsim",
"third-party//rust:tempfile",
"third-party//rust:textwrap",
"third-party//rust:thiserror",
"third-party//rust:timeago",
"third-party//rust:toml_edit",
"third-party//rust:tracing",
"third-party//rust:tracing-chrome",
"third-party//rust:tracing-subscriber",
"third-party//rust:unicode-width",

# platform-specific dependencies
] + select({
"config//os:windows": [],
"DEFAULT": [
"third-party//rust:libc",
],
})
)
6 changes: 6 additions & 0 deletions cli/src/template_parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ use pest::Parser;
use pest_derive::Parser;
use thiserror::Error;

#[cfg(buck_build)]
#[derive(Parser)]
#[grammar = "cli/src/template.pest"]
struct TemplateParser;

#[cfg(not(buck_build))]
#[derive(Parser)]
#[grammar = "template.pest"]
struct TemplateParser;
Expand Down

0 comments on commit 89231f7

Please sign in to comment.