This repository has been archived on 2024-11-22. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles-old/modules/nixos/rust-toolchain.nix
Seven Of Aces bd6a2bebb6 new file: assets/.bashrc
new file:   assets/direnvrc
	new file:   assets/toolchains/rust/.envrc
	new file:   assets/toolchains/rust/flake.nix
	new file:   flake.lock
	modified:   flake.nix
	renamed:    hosts/blackstar/home-manager/home.nix -> home.nix
	deleted:    hosts/rogue/home-manager/home.nix
	deleted:    hosts/shared/home-manager/shared_home.nix
	modified:   modules/nixos/rust-toolchain.nix
	new file:   modules/nixos/rust-toolchain.toml
	new file:   result
2024-08-04 14:13:10 -07:00

49 lines
No EOL
1.6 KiB
Nix

{
inputs,
outputs,
lib,
config,
pkgs,
...
}:
let
overrides = (builtins.fromTOML (builtins.readFile ./rust-toolchain.toml));
libPath = with pkgs; lib.makeLibraryPath [
# load external libraries that you need in your rust project here
];
in
pkgs.mkShell rec {
buildInputs = with pkgs; [
gcc
clang
# Replace llvmPackages with llvmPackages_X, where X is the latest LLVM version (at the time of writing, 16)
llvmPackages.bintools
rustup
];
shellHook = ''
export PATH=$PATH:''${CARGO_HOME:-~/.cargo}/bin
export PATH=$PATH:''${RUSTUP_HOME:-~/.rustup}/toolchains/$RUSTC_VERSION-x86_64-unknown-linux-gnu/bin/
'';
RUSTC_VERSION = overrides.toolchain.channel;
# https://github.com/rust-lang/rust-bindgen#environment-variables
LIBCLANG_PATH = pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ];
# Add precompiled library to rustc search path
RUSTFLAGS = (builtins.map (a: ''-L ${a}/lib'') [
# add libraries here (e.g. pkgs.libvmi)
]);
LD_LIBRARY_PATH = libPath;
# Add glibc, clang, glib, and other headers to bindgen search path
BINDGEN_EXTRA_CLANG_ARGS =
# Includes normal include path
(builtins.map (a: ''-I"${a}/include"'') [
# add dev libraries here (e.g. pkgs.libvmi.dev)
pkgs.glibc.dev
])
# Includes with special directory paths
++ [
''-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/''
];
}