42 lines
1.5 KiB
Nix
42 lines
1.5 KiB
Nix
{
|
|
description = "Rust development environment";
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
fenix = {
|
|
url = "github:nix-community/fenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
outputs = { self, nixpkgs, flake-utils, fenix }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
toolchain = fenix.packages.${system}.fromToolchainFile {
|
|
file = ./rust-toolchain.toml;
|
|
sha256 = sha256-gh/xTkxKHL4eiRXzWv8KP7vfjSk61Iq48x47BEDFgfk=;
|
|
};
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell rec {
|
|
nativeBuildInputs = [ pkgs.pkg-config ];
|
|
buildInputs = with pkgs; [
|
|
toolchain
|
|
clang
|
|
llvmPackages.bintools
|
|
typst
|
|
];
|
|
LIBCLANG_PATH = pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ];
|
|
RUSTFLAGS = (builtins.map (a: ''-L ${a}/lib'') []);
|
|
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (buildInputs ++ nativeBuildInputs);
|
|
BINDGEN_EXTRA_CLANG_ARGS =
|
|
(builtins.map (a: ''-I"${a}/include"'') [ pkgs.glibc.dev ])
|
|
++ [
|
|
''-I"${pkgs.llvmPackages_latest.libclang.lib}/lib/clang/${pkgs.llvmPackages_latest.libclang.version}/include"''
|
|
''-I"${pkgs.glib.dev}/include/glib-2.0"''
|
|
''-I${pkgs.glib.out}/lib/glib-2.0/include/''
|
|
];
|
|
};
|
|
}
|
|
);
|
|
} |