summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-09-03 18:08:32 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-09-03 18:08:32 -0400
commit5abdd7c876e821fa6b7be0f8e7298b9a4c9e1d20 (patch)
treef09b3061505f00af0ee95c9882d8a9ae0091e0ea /flake.nix
Empty project setup
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..2d0d812
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,50 @@
+{
+ inputs = { flake-utils.url = "github:numtide/flake-utils"; };
+
+ outputs = { self, nixpkgs, flake-utils }:
+ flake-utils.lib.eachDefaultSystem (system:
+ let pkgs = nixpkgs.legacyPackages.${system};
+ in {
+ devShell = pkgs.mkShell {
+ buildInputs = with pkgs; [
+ stdenv
+ openssl
+ pkg-config
+ llvmPackages_latest.llvm
+ llvmPackages_latest.bintools
+ zlib.out
+ rustup
+ #xorriso
+ #grub2
+ #qemu
+ llvmPackages_latest.lld
+ #python3
+ ];
+ RUSTC_VERSION = pkgs.lib.readFile ./rust-toolchain;
+ # https://github.com/rust-lang/rust-bindgen#environment-variables
+ LIBCLANG_PATH = pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ];
+ HISTFILE = toString ./.history;
+ shellHook = ''
+ export PATH=$PATH:~/cargo/bin
+ export PATH=$PATH:~/.rustup/toolchains/$RUSTC_VERSION-x86_64-unknown-linux-gnu/bin/
+ '';
+ # Add libvmi precompiled library to rustc search path
+ # RUSTFLAGS = (builtins.map (a: ''-L ${a}/lib'') [
+ # pkgs.libvmi
+ # ]);
+ # Add libvmi, glibc, clang, glib headers to bindgen search path
+ BINDGEN_EXTRA_CLANG_ARGS =
+ # Includes with normal include path
+ (builtins.map (a: ''-I"${a}/include"'') [
+ # pkgs.libvmi
+ 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/''
+ ];
+ };
+ });
+}