nix: cleanup; get rust-analyzer from overlay
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I2bfd563820ce6258798d8f06247e4ffe6a6a6964
This commit is contained in:
parent
bf76820ddd
commit
d6665c73ff
2 changed files with 65 additions and 74 deletions
14
flake.nix
14
flake.nix
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
description = "Rust Project Template";
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
|
||||||
rust-overlay = {
|
rust-overlay = {
|
||||||
|
|
@ -9,27 +8,18 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
rust-overlay,
|
rust-overlay,
|
||||||
|
...
|
||||||
}: let
|
}: let
|
||||||
systems = ["x86_64-linux" "aarch64-linux"];
|
systems = ["x86_64-linux" "aarch64-linux"];
|
||||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||||
pkgsForEach = nixpkgs.legacyPackages;
|
pkgsForEach = nixpkgs.legacyPackages;
|
||||||
in {
|
in {
|
||||||
packages = forEachSystem (system: let
|
|
||||||
pkgs = pkgsForEach.${system};
|
|
||||||
in {
|
|
||||||
mercant = pkgs.callPackage ./nix/packages/mercant.nix {};
|
|
||||||
webview-sdk = pkgs.callPackage ./nix/packages/webview.nix {};
|
|
||||||
});
|
|
||||||
|
|
||||||
devShells = forEachSystem (system: let
|
devShells = forEachSystem (system: let
|
||||||
pkgs = nixpkgs.legacyPackages.${system}.extend rust-overlay.overlays.default;
|
pkgs = pkgsForEach.${system}.extend rust-overlay.overlays.default;
|
||||||
in {
|
in {
|
||||||
default = pkgs.callPackage ./nix/shell.nix {};
|
default = pkgs.callPackage ./nix/shell.nix {};
|
||||||
});
|
});
|
||||||
|
|
||||||
hydraJobs = self.packages;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
125
nix/shell.nix
125
nix/shell.nix
|
|
@ -4,78 +4,79 @@
|
||||||
# rust-overlay params
|
# rust-overlay params
|
||||||
extraComponents ? [],
|
extraComponents ? [],
|
||||||
extraTargets ? [],
|
extraTargets ? [],
|
||||||
}:
|
}: let
|
||||||
pkgs.mkShell {
|
inherit (pkgs.rustc) llvmPackages;
|
||||||
name = "mercant-devshell";
|
in
|
||||||
packages = [
|
pkgs.mkShell {
|
||||||
pkgs.taplo # TOML formatter
|
name = "pinakes-dev";
|
||||||
pkgs.lldb # debugger
|
packages = [
|
||||||
pkgs.rust-analyzer-unwrapped # LSP
|
pkgs.taplo # TOML formatter
|
||||||
pkgs.llvm
|
pkgs.lldb # debugger
|
||||||
pkgs.libiconv
|
pkgs.llvm
|
||||||
|
pkgs.libiconv
|
||||||
|
|
||||||
# Additional Cargo Tooling
|
# Additional Cargo Tooling
|
||||||
pkgs.cargo-nextest
|
pkgs.cargo-nextest
|
||||||
pkgs.cargo-deny
|
pkgs.cargo-deny
|
||||||
|
|
||||||
# Build tools
|
# Build tools
|
||||||
# We use the rust-overlay to get the stable Rust toolchain for various targets.
|
# We use the rust-overlay to get the stable Rust toolchain for various targets.
|
||||||
# This is not exactly necessary, but it allows for compiling for various targets
|
# This is not exactly necessary, but it allows for compiling for various targets
|
||||||
# with the least amount of friction.
|
# with the least amount of friction.
|
||||||
(rust-bin.nightly.latest.default.override {
|
(rust-bin.nightly.latest.default.override {
|
||||||
extensions = ["rustfmt" "rust-analyzer" "clippy"] ++ extraComponents;
|
extensions = ["rustfmt" "rust-analyzer" "clippy" "rust-analyzer"] ++ extraComponents;
|
||||||
targets =
|
targets =
|
||||||
[
|
[
|
||||||
"wasm32-unknown-unknown" # web
|
"wasm32-unknown-unknown" # web
|
||||||
]
|
]
|
||||||
++ extraTargets;
|
++ extraTargets;
|
||||||
})
|
})
|
||||||
|
|
||||||
# Link with Clang & lld
|
# Link with Clang & lld
|
||||||
pkgs.clang
|
pkgs.clang
|
||||||
pkgs.lld
|
pkgs.lld
|
||||||
|
|
||||||
# Handy CLI for packaging Dioxus apps and such
|
# Handy CLI for packaging Dioxus apps and such
|
||||||
pkgs.dioxus-cli
|
pkgs.dioxus-cli
|
||||||
|
|
||||||
# Dioxus desktop dependencies (GTK/WebKit)
|
# Dioxus desktop dependencies (GTK/WebKit)
|
||||||
pkgs.pkg-config
|
pkgs.pkg-config
|
||||||
pkgs.glib
|
pkgs.glib
|
||||||
pkgs.gtk3
|
|
||||||
pkgs.webkitgtk_4_1
|
|
||||||
pkgs.libsoup_3
|
|
||||||
pkgs.cairo
|
|
||||||
pkgs.pango
|
|
||||||
pkgs.gdk-pixbuf
|
|
||||||
pkgs.atk
|
|
||||||
pkgs.xdotool # provides libxdo
|
|
||||||
pkgs.openssl
|
|
||||||
pkgs.kdePackages.wayland
|
|
||||||
];
|
|
||||||
|
|
||||||
env = {
|
|
||||||
# Allow Cargo to use lld and clang properly
|
|
||||||
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
|
|
||||||
RUSTFLAGS = "-C link-arg=-fuse-ld=lld";
|
|
||||||
|
|
||||||
# 'cargo llvm-cov' reads these environment variables to find these
|
|
||||||
# binaries, which are needed to run the tests.
|
|
||||||
LLVM_COV = "${pkgs.llvm}/bin/llvm-cov";
|
|
||||||
LLVM_PROFDATA = "${pkgs.llvm}/bin/llvm-profdata";
|
|
||||||
|
|
||||||
# Runtime library path for GTK/WebKit/xdotool
|
|
||||||
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath [
|
|
||||||
pkgs.xdotool
|
|
||||||
pkgs.gtk3
|
pkgs.gtk3
|
||||||
pkgs.webkitgtk_4_1
|
pkgs.webkitgtk_4_1
|
||||||
pkgs.glib
|
pkgs.libsoup_3
|
||||||
pkgs.cairo
|
pkgs.cairo
|
||||||
pkgs.pango
|
pkgs.pango
|
||||||
pkgs.gdk-pixbuf
|
pkgs.gdk-pixbuf
|
||||||
pkgs.atk
|
pkgs.atk
|
||||||
pkgs.libsoup_3
|
pkgs.xdotool # provides libxdo
|
||||||
pkgs.openssl
|
pkgs.openssl
|
||||||
pkgs.kdePackages.wayland
|
pkgs.kdePackages.wayland
|
||||||
]}";
|
];
|
||||||
};
|
|
||||||
}
|
env = {
|
||||||
|
# Allow Cargo to use lld and clang properly
|
||||||
|
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
|
||||||
|
RUSTFLAGS = "-C link-arg=-fuse-ld=lld";
|
||||||
|
|
||||||
|
# 'cargo llvm-cov' reads these environment variables to find these
|
||||||
|
# binaries, which are needed to run the tests.
|
||||||
|
LLVM_COV = "${pkgs.llvm}/bin/llvm-cov";
|
||||||
|
LLVM_PROFDATA = "${pkgs.llvm}/bin/llvm-profdata";
|
||||||
|
|
||||||
|
# Runtime library path for GTK/WebKit/xdotool
|
||||||
|
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath [
|
||||||
|
pkgs.xdotool
|
||||||
|
pkgs.gtk3
|
||||||
|
pkgs.webkitgtk_4_1
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.cairo
|
||||||
|
pkgs.pango
|
||||||
|
pkgs.gdk-pixbuf
|
||||||
|
pkgs.atk
|
||||||
|
pkgs.libsoup_3
|
||||||
|
pkgs.openssl
|
||||||
|
pkgs.kdePackages.wayland
|
||||||
|
]}";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue