Skip to content

Commit 6a313b4

Browse files
committed
nix: explicit cabal project in devShell
Using alias, we get the "correct" behavior when typing `cabal build` in the nix-shell, it points to the current cabal-project file.
1 parent 48fa366 commit 6a313b4

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

flake.nix

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@
238238

239239
# Create a development shell of hls project
240240
# See https://github.com/NixOS/nixpkgs/blob/5d4a430472cafada97888cc80672fab255231f57/pkgs/development/haskell-modules/make-package-set.nix#L319
241-
mkDevShell = hpkgs:
241+
mkDevShell = hpkgs: cabalProject:
242242
with pkgs;
243243
hpkgs.shellFor {
244244
doBenchmark = true;
@@ -277,6 +277,8 @@
277277
export DYLD_LIBRARY_PATH=${gmp}/lib:${zlib}/lib:${ncurses}/lib:${capstone}/lib
278278
export PATH=$PATH:$HOME/.local/bin
279279
${(pre-commit-check ghcDefault).shellHook}
280+
281+
alias cabal='cabal --project-file=${cabalProject}'
280282
'';
281283
};
282284
# Create a hls executable
@@ -295,15 +297,15 @@
295297
}));
296298
in with pkgs; rec {
297299

298-
packages = {
299-
# dev shell
300-
haskell-language-server-dev = mkDevShell ghcDefault;
301-
haskell-language-server-884-dev = mkDevShell ghc884;
302-
haskell-language-server-8107-dev = mkDevShell ghc8107;
303-
haskell-language-server-901-dev = mkDevShell ghc901;
304-
haskell-language-server-921-dev = mkDevShell ghc921;
300+
devShells = {
301+
haskell-language-server-dev = mkDevShell ghcDefault "cabal.project";
302+
haskell-language-server-884-dev = mkDevShell ghc884 "cabal.project";
303+
haskell-language-server-8107-dev = mkDevShell ghc8107 "cabal.project";
304+
haskell-language-server-901-dev = mkDevShell ghc901 "cabal-ghc90.project";
305+
haskell-language-server-921-dev = mkDevShell ghc921 "cabal-ghc921.project";
306+
};
305307

306-
# hls package
308+
packages = {
307309
haskell-language-server = mkExe ghcDefault;
308310
haskell-language-server-884 = mkExe ghc884;
309311
haskell-language-server-8107 = mkExe ghc8107;
@@ -316,6 +318,6 @@
316318

317319
defaultPackage = packages.haskell-language-server;
318320

319-
devShell = packages.haskell-language-server-dev;
321+
devShell = devShells.haskell-language-server-dev;
320322
});
321323
}

0 commit comments

Comments
 (0)