aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix99
1 files changed, 66 insertions, 33 deletions
diff --git a/flake.nix b/flake.nix
index 495e441a..1949580d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,10 +14,14 @@
};
};
- outputs = inputs@{ nixCargoIntegration, ... }:
+ outputs = inputs @ {
+ nixpkgs,
+ nixCargoIntegration,
+ ...
+ }:
nixCargoIntegration.lib.makeOutputs {
root = ./.;
- renameOutputs = { "helix-term" = "helix"; };
+ renameOutputs = {"helix-term" = "helix";};
# Set default app to hx (binary is from helix-term release build)
# Set default package to helix-term release build
defaultOutputs = {
@@ -25,41 +29,70 @@
package = "helix";
};
overrides = {
- cCompiler = common: if common.pkgs.stdenv.isLinux then common.pkgs.gcc else common.pkgs.clang;
+ cCompiler = common:
+ with common.pkgs;
+ if stdenv.isLinux
+ then gcc
+ else clang;
crateOverrides = common: _: {
- helix-term = prev:
- let
- inherit (common) pkgs;
- grammars = pkgs.callPackage ./grammars.nix { };
- runtimeDir = pkgs.runCommand "helix-runtime" { } ''
- mkdir -p $out
- ln -s ${common.root}/runtime/* $out
- rm -r $out/grammars
- ln -s ${grammars} $out/grammars
- '';
- in
- {
- # disable fetching and building of tree-sitter grammars in the helix-term build.rs
- HELIX_DISABLE_AUTO_GRAMMAR_BUILD = "1";
- # link languages and theme toml files since helix-term expects them (for tests)
- preConfigure = "ln -s ${common.root}/{languages.toml,theme.toml,base16_theme.toml} ..";
- buildInputs = (prev.buildInputs or [ ]) ++ [ common.cCompiler.cc.lib ];
- nativeBuildInputs = [ pkgs.makeWrapper ];
+ helix-term = prev: let
+ inherit (common) pkgs;
+ mkRootPath = rel:
+ builtins.path {
+ path = "${common.root}/${rel}";
+ name = rel;
+ };
+ grammars = pkgs.callPackage ./grammars.nix {};
+ runtimeDir = pkgs.runCommandNoCC "helix-runtime" {} ''
+ mkdir -p $out
+ ln -s ${mkRootPath "runtime"}/* $out
+ rm -r $out/grammars
+ ln -s ${grammars} $out/grammars
+ '';
+ in {
+ # disable fetching and building of tree-sitter grammars in the helix-term build.rs
+ HELIX_DISABLE_AUTO_GRAMMAR_BUILD = "1";
+ # link languages and theme toml files since helix-term expects them (for tests)
+ preConfigure =
+ pkgs.lib.concatMapStringsSep
+ "\n"
+ (path: "ln -sf ${mkRootPath path} ..")
+ ["languages.toml" "theme.toml" "base16_theme.toml"];
+ buildInputs = (prev.buildInputs or []) ++ [common.cCompiler.cc.lib];
+ nativeBuildInputs = [pkgs.makeWrapper];
- postFixup = ''
- if [ -f "$out/bin/hx" ]; then
- wrapProgram "$out/bin/hx" --set HELIX_RUNTIME "${runtimeDir}"
- fi
- '';
- };
+ postFixup = ''
+ if [ -f "$out/bin/hx" ]; then
+ wrapProgram "$out/bin/hx" --set HELIX_RUNTIME "${runtimeDir}"
+ fi
+ '';
+ };
};
shell = common: prev: {
- packages = prev.packages ++ (with common.pkgs; [ lld_13 lldb cargo-tarpaulin cargo-flamegraph ]);
- env = prev.env ++ [
- { name = "HELIX_RUNTIME"; eval = "$PWD/runtime"; }
- { name = "RUST_BACKTRACE"; value = "1"; }
- { name = "RUSTFLAGS"; value = if common.pkgs.stdenv.isLinux then "-C link-arg=-fuse-ld=lld -C target-cpu=native -Clink-arg=-Wl,--no-rosegment" else ""; }
- ];
+ packages =
+ prev.packages
+ ++ (
+ with common.pkgs; [lld_13 lldb cargo-tarpaulin cargo-flamegraph]
+ );
+ env =
+ prev.env
+ ++ [
+ {
+ name = "HELIX_RUNTIME";
+ eval = "$PWD/runtime";
+ }
+ {
+ name = "RUST_BACKTRACE";
+ value = "1";
+ }
+ {
+ name = "RUSTFLAGS";
+ value =
+ if common.pkgs.stdenv.isLinux
+ then "-C link-arg=-fuse-ld=lld -C target-cpu=native -Clink-arg=-Wl,--no-rosegment"
+ else "";
+ }
+ ];
};
};
};