{ description = "Circe Build Environment"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-26.05"; esp32-overlay.url = "github:mirrexagon/nixpkgs-esp-dev"; }; outputs = { self, nixpkgs, esp32-overlay, ... }@inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; pkgs-persephone = import nixpkgs { overlays = [ esp32-overlay.overlays.default ]; inherit system; config.permittedInsecurePackages = [ "python3.13-ecdsa-0.19.1" ]; }; aphrodite_shl = pkgs.mkShell { name = "circe-tooling-env-aphrodite"; packages = with pkgs; [ meson ninja just gcc clang-tools valgrind bear tokei ruby just-lsp just-formatter ]; NIX_ENFORCE_NO_NATIVE = 0; hardeningDisable = [ "fortify" ]; }; teiresia_shl = pkgs.mkShell { name = "circe-tooling-env-teiresia"; packages = with pkgs; [ meson ninja just pkgsCross.aarch64-multiplatform-musl.gcc clang-tools valgrind bear tokei ]; }; demeter_shl = pkgs.mkShell { name = "circe-tooling-env-demeter"; packages = with pkgs; [ meson ninja just pkgsCross.mips64el-linux-gnuabin32.gcc clang-tools valgrind bear tokei ]; }; persephone_shl = pkgs.mkShell { name = "circe-tooling-env-persephone"; packages = with pkgs-persephone; [ meson ninja just esp-idf-xtensa qemu-esp32 clang-tools valgrind bear tokei ]; }; in { devShells.${system} = { default = aphrodite_shl; teiresia = teiresia_shl; demeter = demeter_shl; persephone = persephone_shl; }; }; }