70 lines
2.1 KiB
Nix
70 lines
2.1 KiB
Nix
{inputs, ...}: {
|
|
imports = [
|
|
inputs.flake-parts.flakeModules.easyOverlay
|
|
];
|
|
perSystem = {
|
|
config,
|
|
self',
|
|
inputs',
|
|
pkgs,
|
|
final,
|
|
lib,
|
|
system,
|
|
...
|
|
}: {
|
|
_module.args.pkgs = lib.foldl (lp: lp.extend) inputs.nixpkgs.legacyPackages.${system} [
|
|
(self: super: {
|
|
extra-package-inputs = lib.mapAttrs' (inputName: input: {
|
|
name = builtins.head (builtins.match "extra-package-(.*)" inputName);
|
|
value = input;
|
|
}) (lib.filterAttrs (inputName: _: ! builtins.isNull (builtins.match "extra-package-.*" inputName)) inputs);
|
|
})
|
|
inputs.emacs-overlay.overlays.package
|
|
inputs.emacs-overlay.overlays.emacs
|
|
# Some tree-sitter grammars in nixpksg are built with a too new ABI
|
|
# https://github.com/NixOS/nixpkgs/issues/209114
|
|
# (_: _: {
|
|
# 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 = {
|
|
treesitGrammars = let
|
|
all-grammars = pkgs.tree-sitter.withPlugins builtins.attrValues;
|
|
in
|
|
pkgs.runCommand "treesit-grammars" {} ''
|
|
mkdir $out
|
|
for f in ${all-grammars}/*
|
|
do
|
|
cp $f $out/"libtree-sitter-$(basename $f)"
|
|
done
|
|
'';
|
|
ccrEmacsWithoutPackages = (pkgs.emacs-git.override {
|
|
withSQLite3 = true;
|
|
withWebP = true;
|
|
withPgtk = true;
|
|
}).overrideAttrs {
|
|
name = "test";
|
|
};
|
|
ccrEmacs =
|
|
(pkgs.emacsPackagesFor config.packages.ccrEmacsWithoutPackages).emacsWithPackages
|
|
(import ./packages.nix pkgs);
|
|
default = config.packages.ccrEmacs;
|
|
};
|
|
|
|
apps = {
|
|
ccrEmacs.program = "${config.packages.ccrEmacs}/bin/emacs";
|
|
default = config.apps.ccrEmacs;
|
|
};
|
|
};
|
|
}
|