From c4cfd0b6cc4d61f59428bde77fb6aba38ca83606 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 10 Oct 2024 11:23:50 -0400 Subject: [PATCH] Move dependencies to workspace Add "{{project-name}}-ebpf" to workspace. Update various cargo configs to match main aya repo. --- .cargo/config.toml | 2 -- .cargo/rust-analyzer.toml | 2 -- Cargo.toml | 18 ++++++++++++++++- xtask/Cargo.toml | 4 ++-- {{project-name}}-common/Cargo.toml | 2 +- {{project-name}}-ebpf/.cargo/config.toml | 10 ++++++++-- .../.cargo/rust-analyzer.toml | 3 --- {{project-name}}-ebpf/.helix/config.toml | 2 -- {{project-name}}-ebpf/Cargo.toml | 5 +++-- {{project-name}}-ebpf/rust-toolchain.toml | 11 ---------- {{project-name}}/Cargo.toml | 20 ++++++++++--------- 11 files changed, 42 insertions(+), 37 deletions(-) delete mode 100644 .cargo/config.toml delete mode 100644 .cargo/rust-analyzer.toml delete mode 100644 {{project-name}}-ebpf/.cargo/rust-analyzer.toml delete mode 100644 {{project-name}}-ebpf/.helix/config.toml diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index 35049cb..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[alias] -xtask = "run --package xtask --" diff --git a/.cargo/rust-analyzer.toml b/.cargo/rust-analyzer.toml deleted file mode 100644 index deae97e..0000000 --- a/.cargo/rust-analyzer.toml +++ /dev/null @@ -1,2 +0,0 @@ -[rust-analyzer] -linkedProjects = ["Cargo.toml", "{{project-name}}-ebpf/Cargo.toml"] diff --git a/Cargo.toml b/Cargo.toml index c03af9e..3d87f75 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,19 @@ [workspace] resolver = "2" -members = ["xtask", "{{project-name}}", "{{project-name}}-common"] +members = ["xtask", "{{project-name}}", "{{project-name}}-common", "{{project-name}}-ebpf"] + +[workspace.dependencies] +aya = { version = "0.13.0", default-features = false } +aya-ebpf = { version = "0.1.1", default-features = false } +aya-log = { version = "0.2.1", default-features = false } +aya-log-ebpf = { version = "0.1.1", default-features = false } + +anyhow = { version = "1", default-features = false } +# `std` feature is currently required to build `clap`. +# +# See https://github.com/clap-rs/clap/blob/61f5ee5/clap_builder/src/lib.rs#L15. +clap = { version = "4.1", default-features = false, features = ["std"] } +env_logger = { version = "0.10", default-features = false } +libc = { version = "0.2", default-features = false } +log = { version = "0.4", default-features = false } +tokio = { version = "1.25", default-features = false } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index c4dea5d..8bc59c3 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -4,5 +4,5 @@ version = "0.1.0" edition = "2021" [dependencies] -anyhow = "1" -clap = { version = "4.1", features = ["derive"] } +anyhow = { workspace = true } +clap = { workspace = true, features = ["derive"] } diff --git a/{{project-name}}-common/Cargo.toml b/{{project-name}}-common/Cargo.toml index 153d2ba..713d8fd 100644 --- a/{{project-name}}-common/Cargo.toml +++ b/{{project-name}}-common/Cargo.toml @@ -8,7 +8,7 @@ default = [] user = ["aya"] [dependencies] -aya = { version = "0.13", optional = true } +aya = { workspace = true, optional = true } [lib] path = "src/lib.rs" diff --git a/{{project-name}}-ebpf/.cargo/config.toml b/{{project-name}}-ebpf/.cargo/config.toml index 4302a7f..d8d7a20 100644 --- a/{{project-name}}-ebpf/.cargo/config.toml +++ b/{{project-name}}-ebpf/.cargo/config.toml @@ -1,6 +1,12 @@ +# We have this so that one doesn't need to manually pass +# --target=bpfel-unknown-none -Z build-std=core when running cargo +# check/build/doc etc. +# +# NB: this file gets loaded only if you run cargo from this directory, it's +# ignored if you run from the workspace root. See +# https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure [build] -target-dir = "../target" -target = "bpfel-unknown-none" +target = ["bpfeb-unknown-none", "bpfel-unknown-none"] [unstable] build-std = ["core"] diff --git a/{{project-name}}-ebpf/.cargo/rust-analyzer.toml b/{{project-name}}-ebpf/.cargo/rust-analyzer.toml deleted file mode 100644 index 9855618..0000000 --- a/{{project-name}}-ebpf/.cargo/rust-analyzer.toml +++ /dev/null @@ -1,3 +0,0 @@ -[rust-analyzer] -cargo.target = "bpfel-unknown-none" -checkOnSave.allTargets = false diff --git a/{{project-name}}-ebpf/.helix/config.toml b/{{project-name}}-ebpf/.helix/config.toml deleted file mode 100644 index da5424f..0000000 --- a/{{project-name}}-ebpf/.helix/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[editor] -workspace-lsp-roots = [] diff --git a/{{project-name}}-ebpf/Cargo.toml b/{{project-name}}-ebpf/Cargo.toml index 5952771..617ffb3 100644 --- a/{{project-name}}-ebpf/Cargo.toml +++ b/{{project-name}}-ebpf/Cargo.toml @@ -4,10 +4,11 @@ version = "0.1.0" edition = "2021" [dependencies] -aya-ebpf = "0.1.1" -aya-log-ebpf = "0.1.1" {{ project-name }}-common = { path = "../{{ project-name }}-common" } +aya-ebpf = { workspace = true } +aya-log-ebpf = { workspace = true } + [[bin]] name = "{{ project-name }}" path = "src/main.rs" diff --git a/{{project-name}}-ebpf/rust-toolchain.toml b/{{project-name}}-ebpf/rust-toolchain.toml index 24ce391..5d56faf 100644 --- a/{{project-name}}-ebpf/rust-toolchain.toml +++ b/{{project-name}}-ebpf/rust-toolchain.toml @@ -1,13 +1,2 @@ [toolchain] channel = "nightly" -# The source code of rustc, provided by the rust-src component, is needed for -# building eBPF programs. -components = [ - "cargo", - "clippy", - "rust-docs", - "rust-src", - "rust-std", - "rustc", - "rustfmt", -] diff --git a/{{project-name}}/Cargo.toml b/{{project-name}}/Cargo.toml index a6d0f66..b4b9669 100644 --- a/{{project-name}}/Cargo.toml +++ b/{{project-name}}/Cargo.toml @@ -5,17 +5,19 @@ edition = "2021" publish = false [dependencies] -aya = "0.13" -aya-log = "0.2" +{{project-name}}-common = { path = "../{{project-name}}-common", features = ["user"] } + +anyhow = { workspace = true } +aya = { workspace = true } +aya-log = { workspace = true } +env_logger = {workspace = true } +libc = { workspace = true } +log = { workspace = true } +tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "net", "signal"] } + {% if program_types_with_opts contains program_type -%} -clap = { version = "4.1", features = ["derive"] } +clap = { workspace = true, features = ["derive"] } {% endif -%} -{{project-name}}-common = { path = "../{{project-name}}-common", features = ["user"] } -anyhow = "1" -env_logger = "0.10" -libc = "0.2" -log = "0.4" -tokio = { version = "1.25", features = ["macros", "rt", "rt-multi-thread", "net", "signal"] } [[bin]] name = "{{project-name}}"