about summary refs log tree commit diff stats
path: root/modules/by-name/ca/cargo/module.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-04-14 17:11:31 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-04-14 17:11:31 +0200
commit933f62f5a75164044d4f78cd8fb40a2edb1e8ced (patch)
treea7849f07c43ae389e12e8637509e950f90155bd2 /modules/by-name/ca/cargo/module.nix
parentmodules/disks/hibernate: Migrate to rfc42 settings (diff)
downloadnixos-config-933f62f5a75164044d4f78cd8fb40a2edb1e8ced.zip
modules/cargo: Use one shared cargo `./target` directory
Diffstat (limited to 'modules/by-name/ca/cargo/module.nix')
-rw-r--r--modules/by-name/ca/cargo/module.nix15
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/by-name/ca/cargo/module.nix b/modules/by-name/ca/cargo/module.nix
index 980ebcba..d36a11e5 100644
--- a/modules/by-name/ca/cargo/module.nix
+++ b/modules/by-name/ca/cargo/module.nix
@@ -10,17 +10,26 @@
 {
   config,
   lib,
+  libraries,
   ...
 }: let
   cfg = config.soispha.programs.cargo;
 in {
   options.soispha.programs.cargo = {
-    enable = lib.mkEnableOption "cargo";
+    enable = libraries.base.options.mkEnable "cargo";
   };
+
   config = lib.mkIf cfg.enable {
     home-manager.users.soispha = {
-      home.sessionVariables = {
-        CARGO_HOME = "${config.home-manager.users.soispha.xdg.dataHome}/cargo";
+      programs.cargo = {
+        enable = true;
+        package = null;
+        cargoHome = "${config.home-manager.users.soispha.xdg.dataHome}/cargo";
+
+        settings = {
+          # {cargo-cache-home} means $CARGO_HOME
+          build.build-dir = "{cargo-cache-home}/shared-target/";
+        };
       };
     };
   };