From 6068827dfbaedc1bd8f9044c15b4096b4043cfa9 Mon Sep 17 00:00:00 2001 From: Clara Dautermann Date: Wed, 2 Jul 2025 20:35:23 +0200 Subject: [PATCH] basic wubbel --- firmware/Cargo.toml | 16 +++++------ flake.lock | 37 +----------------------- flake.nix | 68 +++++++++++++-------------------------------- 3 files changed, 29 insertions(+), 92 deletions(-) diff --git a/firmware/Cargo.toml b/firmware/Cargo.toml index 25a6c8d..c50b778 100644 --- a/firmware/Cargo.toml +++ b/firmware/Cargo.toml @@ -1,6 +1,6 @@ [package] edition = "2021" -name = "firmware" +name = "firmware" version = "0.1.0" [[bin]] @@ -9,7 +9,7 @@ path = "./src/bin/main.rs" [dependencies] esp-bootloader-esp-idf = "0.1.0" -esp-hal = { version = "=1.0.0-beta.1", features = ["esp32", "unstable"] } +esp-hal = { version = "=1.0.0-beta.1", features = ["esp32", "unstable"] } bleps = { git = "https://github.com/bjoernQ/bleps", package = "bleps", rev = "a5148d8ae679e021b78f53fd33afb8bb35d0b62e", features = [ "async", @@ -47,10 +47,10 @@ smoltcp = { version = "0.12.0", default-features = false, features = [ opt-level = "s" [profile.release] -codegen-units = 1 # LLVM can perform better optimizations using a single thread -debug = 2 +codegen-units = 1 # LLVM can perform better optimizations using a single thread +debug = 2 debug-assertions = false -incremental = false -lto = 'fat' -opt-level = 's' -overflow-checks = false +incremental = false +lto = 'fat' +opt-level = 's' +overflow-checks = false diff --git a/flake.lock b/flake.lock index 64dd30b..44afde9 100644 --- a/flake.lock +++ b/flake.lock @@ -16,44 +16,9 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1751423951, - "narHash": "sha256-AowKhJGplXRkAngSvb+32598DTiI6LOzhAnzgvbCtYM=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "1684ed5b15859b655caf41b467d046e29a994d04", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 2d0ba20..2065186 100644 --- a/flake.nix +++ b/flake.nix @@ -1,59 +1,31 @@ { - description = "A Nix-flake-based Rust development environment for ESP"; + description = "A Nix-flake-based Rust ESP IDF development environment"; - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - rust-overlay.url = "github:oxalica/rust-overlay"; - }; + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - outputs = { self, nixpkgs, rust-overlay }: + outputs = { self, nixpkgs }: let supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + + nixpkgs-esp-dev = builtins.fetchGit { + url = "https://github.com/mirrexagon/nixpkgs-esp-dev.git"; + + # Optionally pin to a specific commit of `nixpkgs-esp-dev`. + rev = "6c34f2436015eb6c107970d9b88f3d5d4600c6fa"; + }; forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { - inherit system; - overlays = [ rust-overlay.overlays.default ]; - }; + pkgs = import nixpkgs { inherit system; overlays = [ (import "${nixpkgs-esp-dev}/overlay.nix") ]; }; }); in { - devShells = forEachSupportedSystem ({ pkgs }: - let - rust-toolchain = pkgs.rust-bin.fromRustupToolchainFile ./firmware/rust-toolchain.toml; - in - { - default = pkgs.mkShell { - packages = with pkgs; [ - rust-toolchain - cargo-flamegraph - espup - - ldproxy - - gcc - git - gnumake - flex - bison - gperf - python313 - cmake - ninja - ccache - dfu-util - libusb1 - python313Packages.pip - - esp-generate - - espflash - probe-rs - ]; - env = { - LIBCLANG_PATH = "/home/clara/.rustup/toolchains/esp/xtensa-esp32-elf-clang/esp-19.1.2_20250225/esp-clang/lib"; - PATH = "/home/clara/.rustup/toolchains/esp/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/bin:$PATH"; - }; - }; - }); + devShells = forEachSupportedSystem ({ pkgs }: { + default = pkgs.mkShell { + packages = with pkgs; [ + esp-idf-full + espflash + ]; + }; + }); }; } +