55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
{inputs, self, ...}: {
|
|
imports = [
|
|
inputs.flake-parts.flakeModules.easyOverlay
|
|
];
|
|
perSystem = {
|
|
config,
|
|
self',
|
|
inputs',
|
|
pkgs,
|
|
final,
|
|
lib,
|
|
system,
|
|
...
|
|
}: let
|
|
inherit (inputs.emacs-overlay.overlays.default pkgs pkgs) emacsPackagesFor;
|
|
in {
|
|
# Some tree-sitter grammars in nixpksg are built with a too new ABI
|
|
# https://github.com/NixOS/nixpkgs/issues/209114
|
|
_module.args.pkgs = inputs.nixpkgs.legacyPackages.${system}.extend (self: super: {
|
|
tree-sitter-grammars =
|
|
super.tree-sitter-grammars
|
|
// {
|
|
tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs (_: {
|
|
nativeBuildInputs = [self.nodejs self.tree-sitter];
|
|
configurePhase = ''
|
|
tree-sitter generate --abi 13 src/grammar.json
|
|
'';
|
|
});
|
|
};
|
|
});
|
|
|
|
packages = {
|
|
ccrEmacsWithoutPackages =
|
|
(inputs'.emacs-overlay.packages.emacsPgtk.override {
|
|
treeSitterPlugins =
|
|
builtins.attrValues
|
|
(builtins.removeAttrs pkgs.tree-sitter-grammars ["recurseForDerivations"]);
|
|
})
|
|
.overrideAttrs (_: {
|
|
name = "ccr-emacs-${inputs.emacs-src.rev}";
|
|
src = inputs.emacs-src.outPath;
|
|
version = "29";
|
|
});
|
|
ccrEmacs =
|
|
(emacsPackagesFor self'.packages.ccrEmacsWithoutPackages).emacsWithPackages
|
|
(import ./packages.nix pkgs);
|
|
default = self'.packages.ccrEmacs;
|
|
};
|
|
|
|
apps = {
|
|
ccrEmacs.program = "${self'.packages.ccrEmacs}/bin/emacs";
|
|
default = self'.apps.ccrEmacs;
|
|
};
|
|
};
|
|
}
|