diff --git a/Cargo.lock b/Cargo.lock index 104af91..8769182 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,3 +5,10 @@ version = 4 [[package]] name = "decodal" version = "0.1.0" +dependencies = [ + "decodal-core", +] + +[[package]] +name = "decodal-core" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 3c61fb9..b6620cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,13 @@ -[package] -name = "decodal" -version = "0.1.0" -edition = "2024" +[workspace] +members = [ + "crates/decodal-core", + "crates/decodal-cli", +] +resolver = "3" -[dependencies] +[profile.release] +opt-level = "z" +lto = true +codegen-units = 1 +strip = true +panic = "abort" diff --git a/crates/decodal-cli/Cargo.toml b/crates/decodal-cli/Cargo.toml new file mode 100644 index 0000000..faee5fb --- /dev/null +++ b/crates/decodal-cli/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "decodal" +version = "0.1.0" +edition = "2024" + +[dependencies] +decodal-core = { path = "../decodal-core" } diff --git a/crates/decodal-cli/src/main.rs b/crates/decodal-cli/src/main.rs new file mode 100644 index 0000000..31e1e0e --- /dev/null +++ b/crates/decodal-cli/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Decodal {}", decodal_core::version()); +} diff --git a/crates/decodal-core/Cargo.toml b/crates/decodal-core/Cargo.toml new file mode 100644 index 0000000..da71e4d --- /dev/null +++ b/crates/decodal-core/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "decodal-core" +version = "0.1.0" +edition = "2024" + +[features] +default = ["std"] +std = [] +regex = [] + +[dependencies] diff --git a/crates/decodal-core/src/lib.rs b/crates/decodal-core/src/lib.rs new file mode 100644 index 0000000..bf479d9 --- /dev/null +++ b/crates/decodal-core/src/lib.rs @@ -0,0 +1,7 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; + +pub fn version() -> &'static str { + env!("CARGO_PKG_VERSION") +} diff --git a/package.nix b/package.nix index 560f815..0ddc6b6 100644 --- a/package.nix +++ b/package.nix @@ -35,6 +35,11 @@ rustPlatform.buildRustPackage { strictDeps = true; + cargoBuildFlags = [ + "-p" + "decodal" + ]; + doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -}