From 4cfd6b9c08c61661398f602e299799dbdac582cf Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Fri, 4 Oct 2024 18:05:33 +0100 Subject: [PATCH] Adding rust --- home/arrakis/default.nix | 6 --- home/common/programs/default.nix | 9 +++- home/common/programs/rust/default.nix | 42 +++++++++++++++++ home/common/programs/rust/rust-toolchain.toml | 0 home/test/default.nix | 20 -------- hosts/arrakis/default.nix | 2 +- .../features/{desktop-apps.nix => fonts.nix} | 0 hosts/live/default.nix | 2 +- hosts/test/default.nix | 46 ------------------- hosts/test/hardware-configuration.nix | 31 ------------- 10 files changed, 51 insertions(+), 107 deletions(-) create mode 100644 home/common/programs/rust/default.nix create mode 100644 home/common/programs/rust/rust-toolchain.toml delete mode 100644 home/test/default.nix rename hosts/common/features/{desktop-apps.nix => fonts.nix} (100%) delete mode 100644 hosts/test/default.nix delete mode 100644 hosts/test/hardware-configuration.nix diff --git a/home/arrakis/default.nix b/home/arrakis/default.nix index 489f16d..7b80362 100644 --- a/home/arrakis/default.nix +++ b/home/arrakis/default.nix @@ -29,12 +29,6 @@ programs.kitty.settings.font_size = 8; - programs = { - home-manager.enable = true; - git.enable = true; - fzf.enable = true; - }; - home = { username = lib.mkDefault "naps62"; stateVersion = lib.mkDefault "24.05"; diff --git a/home/common/programs/default.nix b/home/common/programs/default.nix index 4e2b615..79c72eb 100644 --- a/home/common/programs/default.nix +++ b/home/common/programs/default.nix @@ -1,7 +1,12 @@ { lib, config, ... }: { - imports = [ ./zsh.nix ./neovim ./solidity.nix ]; + imports = [ ./zsh.nix ./neovim ./rust ./solidity.nix ]; - programs.gh.enable = true; + programs = { + home-manager.enable = true; + git.enable = true; + fzf.enable = true; + gh.enable = true; + }; home = { homeDirectory = lib.mkDefault "/home/${config.home.username}"; diff --git a/home/common/programs/rust/default.nix b/home/common/programs/rust/default.nix new file mode 100644 index 0000000..0de07b3 --- /dev/null +++ b/home/common/programs/rust/default.nix @@ -0,0 +1,42 @@ +{ pkgs ? import { } }: +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; [ + clang + # Replace llvmPackages with llvmPackages_X, where X is the latest LLVM version (at the time of writing, 16) + llvmPackages.bintools + rustup + ]; + RUSTC_VERSION = overrides.toolchain.channel; + # https://github.com/rust-lang/rust-bindgen#environment-variables + LIBCLANG_PATH = + pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ]; + shellHook = '' + export PATH=$PATH:''${CARGO_HOME:-~/.cargo}/bin + export PATH=$PATH:''${RUSTUP_HOME:-~/.rustup}/toolchains/$RUSTC_VERSION-x86_64-unknown-linux-gnu/bin/ + ''; + # 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/" + ]; +} diff --git a/home/common/programs/rust/rust-toolchain.toml b/home/common/programs/rust/rust-toolchain.toml new file mode 100644 index 0000000..e69de29 diff --git a/home/test/default.nix b/home/test/default.nix deleted file mode 100644 index a0f6564..0000000 --- a/home/test/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ inputs, lib, pkgs, config, outputs, ... }: { - imports = [ - inputs.nix-colors.homeManagerModule - inputs.nixvim.homeManagerModules.nixvim - ../common/programs/default.nix - ]; - - colorscheme = inputs.nix-colors.colorSchemes.catppuccin-frappe; - - programs = { - home-manager.enable = true; - git.enable = true; - fzf.enable = true; - }; - - home = { - username = lib.mkDefault "naps62"; - stateVersion = lib.mkDefault "24.05"; - }; -} diff --git a/hosts/arrakis/default.nix b/hosts/arrakis/default.nix index bf5eb16..4504141 100644 --- a/hosts/arrakis/default.nix +++ b/hosts/arrakis/default.nix @@ -10,7 +10,7 @@ in { ../common/features/hyprland.nix ../common/features/pipewire.nix ../common/features/docker.nix - ../common/features/desktop-apps.nix + ../common/features/fonts.nix ../common/features/syncthing.nix ]; diff --git a/hosts/common/features/desktop-apps.nix b/hosts/common/features/fonts.nix similarity index 100% rename from hosts/common/features/desktop-apps.nix rename to hosts/common/features/fonts.nix diff --git a/hosts/live/default.nix b/hosts/live/default.nix index a9695c5..fa63cbb 100644 --- a/hosts/live/default.nix +++ b/hosts/live/default.nix @@ -5,6 +5,6 @@ ../common/global ../common/features/hyprland.nix ../common/features/docker.nix - ../common/features/desktop-apps.nix + ../common/features/fonts.nix ]; } diff --git a/hosts/test/default.nix b/hosts/test/default.nix deleted file mode 100644 index 2eedafd..0000000 --- a/hosts/test/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ inputs, pkgs, ... }: -let - tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; - hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; -in { - imports = [ - ./hardware-configuration.nix - ../common/global - ../common/features/networking.nix - ../common/features/hyprland.nix - ../common/features/docker.nix - ../common/features/desktop-apps.nix - ../common/features/syncthing.nix - ]; - - networking.hostName = "nixos-test"; - - boot = { - loader = { - grub = { - enable = true; - device = "/dev/vda"; - useOSProber = true; - }; - }; - }; - - system.stateVersion = "24.05"; - - programs.zsh.enable = true; - - users.users.naps62 = { - isNormalUser = true; - description = "Miguel Palhas"; - extraGroups = [ "networkmanager" "input" "wheel" "docker" ]; - shell = pkgs.zsh; - hashedPassword = - "$y$j9T$0p/ZYQsSA/FroVjV59pI/0$LKyzass6W9GjJR0GLWI6xhVrLi0b5AYYMR3MvQKNK11"; - }; - - fileSystems."mnt/nfs" = { - device = "192.168.122.1:/home/naps62/projects/nixos"; - fsType = "nfs"; - options = [ "rw" "soft" ]; - }; -} diff --git a/hosts/test/hardware-configuration.nix b/hosts/test/hardware-configuration.nix deleted file mode 100644 index 2778866..0000000 --- a/hosts/test/hardware-configuration.nix +++ /dev/null @@ -1,31 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/f351eb61-2a35-416c-bad6-f49400917b2e"; - fsType = "ext4"; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -}