This repository has been archived on 2024-10-30. You can view files and clone it, but cannot push or open issues or pull requests.
emacs/packages/default.nix
Andrea Ciceri 0f1430227d
Some checks failed
/ test (push) Has been cancelled
[CI] Forgejo tests
2024-02-15 14:25:25 +01:00

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;
};
};
}