Files
corne-rs/flake.nix
2025-10-12 21:43:50 +05:30

70 lines
2.0 KiB
Nix

{
description = "A very basic clang devshell flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
crates-nix = {
url = "github:uttarayan21/crates.nix";
inputs.crates-io-index.follows = "crates-io-index";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
crates-io-index = {
url = "github:rust-lang/crates.io-index";
flake = false;
};
};
outputs = {
self,
nixpkgs,
flake-utils,
crates-nix,
rust-overlay,
...
}:
flake-utils.lib.eachDefaultSystem (system: let
overlays = [
# (final: prev: {
# })
rust-overlay.overlays.default
];
pkgs = import nixpkgs {
inherit system overlays;
};
crates = crates-nix.mkLib {inherit pkgs;};
stableToolchain = pkgs.rust-bin.stable.latest.default.override {
targets = ["thumbv7em-none-eabihf"];
extensions = ["rust-src" "llvm-tools"];
};
stableToolchainWithLLvmTools = pkgs.rust-bin.stable.latest.default.override {
targets = ["thumbv7em-none-eabihf"];
extensions = ["rust-src" "llvm-tools"];
};
stableToolchainWithRustAnalyzer = pkgs.rust-bin.stable.latest.default.override {
targets = ["thumbv7em-none-eabihf"];
extensions = ["rust-src" "llvm-tools" "rust-analyzer"];
};
in {
# packages = {
# };
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [clang pkg-config];
buildInputs = with pkgs; [libiconv];
# PKG_CONFIG_PATH = pkgs.lib.makeSearchPath "lib/pkgconfig" (with pkgs; [ncnn]);
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
packages = with pkgs; [
(crates.buildCrate "rmkit" {})
(crates.buildCrate "cargo-hex-to-uf2" {})
flip-link
cargo-make
cargo-binutils
stableToolchainWithRustAnalyzer
];
};
});
}