mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
build-support/emacs: synchronize with emacs' modified attributes
This commit is contained in:
parent
e5e43e6beb
commit
5d68e9014c
|
@ -2,32 +2,25 @@
|
|||
|
||||
{ lib, stdenv, emacs, texinfo, writeText, gcc, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{ pname
|
||||
, version ? null
|
||||
|
||||
, buildInputs ? []
|
||||
, packageRequires ? []
|
||||
|
||||
, meta ? {}
|
||||
|
||||
, ...
|
||||
}@args:
|
||||
|
||||
let
|
||||
|
||||
defaultMeta = {
|
||||
broken = false;
|
||||
platforms = emacs.meta.platforms;
|
||||
} // optionalAttrs ((args.src.meta.homepage or "") != "") {
|
||||
} // lib.optionalAttrs ((args.src.meta.homepage or "") != "") {
|
||||
homepage = args.src.meta.homepage;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
name = "emacs-${pname}${optionalString (version != null) "-${version}"}";
|
||||
name = "emacs-${pname}${lib.optionalString (version != null) "-${version}"}";
|
||||
|
||||
unpackCmd = ''
|
||||
case "$curSrc" in
|
||||
|
@ -68,7 +61,7 @@ stdenv.mkDerivation ({
|
|||
meta = defaultMeta // meta;
|
||||
}
|
||||
|
||||
// lib.optionalAttrs (emacs.nativeComp or false) {
|
||||
// lib.optionalAttrs (emacs.withNativeCompilation or false) {
|
||||
|
||||
LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
|
||||
|
||||
|
@ -90,6 +83,4 @@ stdenv.mkDerivation ({
|
|||
'';
|
||||
}
|
||||
|
||||
// removeAttrs args [ "buildInputs" "packageRequires"
|
||||
"meta"
|
||||
])
|
||||
// removeAttrs args [ "buildInputs" "packageRequires" "meta" ])
|
||||
|
|
|
@ -32,34 +32,25 @@ in customEmacsPackages.withPackages (epkgs: [ epkgs.evil epkgs.magit ])
|
|||
|
||||
*/
|
||||
|
||||
{ lib, lndir, makeWrapper, runCommand, gcc }: self:
|
||||
|
||||
with lib;
|
||||
|
||||
{ lib, lndir, makeWrapper, runCommand, gcc }:
|
||||
self:
|
||||
let
|
||||
|
||||
inherit (self) emacs;
|
||||
|
||||
nativeComp = emacs.nativeComp or false;
|
||||
|
||||
treeSitter = emacs.treeSitter or false;
|
||||
|
||||
withNativeCompilation = emacs.withNativeCompilation or false;
|
||||
withTreeSitter = emacs.withTreeSitter or false;
|
||||
in
|
||||
|
||||
packagesFun: # packages explicitly requested by the user
|
||||
|
||||
let
|
||||
explicitRequires =
|
||||
if lib.isFunction packagesFun
|
||||
then packagesFun self
|
||||
then packagesFun self
|
||||
else packagesFun;
|
||||
in
|
||||
|
||||
runCommand
|
||||
(appendToName "with-packages" emacs).name
|
||||
(lib.appendToName "with-packages" emacs).name
|
||||
{
|
||||
nativeBuildInputs = [ emacs lndir makeWrapper ];
|
||||
inherit emacs explicitRequires;
|
||||
nativeBuildInputs = [ emacs lndir makeWrapper ];
|
||||
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
|
@ -69,8 +60,8 @@ runCommand
|
|||
deps = runCommand "emacs-packages-deps"
|
||||
({
|
||||
inherit explicitRequires lndir emacs;
|
||||
nativeBuildInputs = lib.optional nativeComp gcc;
|
||||
} // lib.optionalAttrs nativeComp {
|
||||
nativeBuildInputs = lib.optional withNativeCompilation gcc;
|
||||
} // lib.optionalAttrs withNativeCompilation {
|
||||
inherit (emacs) LIBRARY_PATH;
|
||||
})
|
||||
''
|
||||
|
@ -110,10 +101,10 @@ runCommand
|
|||
}
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
${optionalString nativeComp ''
|
||||
${lib.optionalString withNativeCompilation ''
|
||||
mkdir -p $out/share/emacs/native-lisp
|
||||
''}
|
||||
${optionalString treeSitter ''
|
||||
${lib.optionalString withTreeSitter ''
|
||||
mkdir -p $out/lib
|
||||
''}
|
||||
|
||||
|
@ -137,10 +128,10 @@ runCommand
|
|||
linkEmacsPackage() {
|
||||
linkPath "$1" "bin" "bin"
|
||||
linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
|
||||
${optionalString nativeComp ''
|
||||
${lib.optionalString withNativeCompilation ''
|
||||
linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp"
|
||||
''}
|
||||
${optionalString treeSitter ''
|
||||
${lib.optionalString withTreeSitter ''
|
||||
linkPath "$1" "lib" "lib"
|
||||
''}
|
||||
}
|
||||
|
@ -171,10 +162,10 @@ runCommand
|
|||
(load-file "$emacs/share/emacs/site-lisp/site-start.el"))
|
||||
(add-to-list 'load-path "$out/share/emacs/site-lisp")
|
||||
(add-to-list 'exec-path "$out/bin")
|
||||
${optionalString nativeComp ''
|
||||
${lib.optionalString withNativeCompilation ''
|
||||
(add-to-list 'native-comp-eln-load-path "$out/share/emacs/native-lisp/")
|
||||
''}
|
||||
${optionalString treeSitter ''
|
||||
${lib.optionalString withTreeSitter ''
|
||||
(add-to-list 'treesit-extra-load-path "$out/lib/")
|
||||
''}
|
||||
EOF
|
||||
|
@ -189,7 +180,7 @@ runCommand
|
|||
# Byte-compiling improves start-up time only slightly, but costs nothing.
|
||||
$emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
|
||||
|
||||
${optionalString nativeComp ''
|
||||
${lib.optionalString withNativeCompilation ''
|
||||
$emacs/bin/emacs --batch \
|
||||
--eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
|
||||
-f batch-native-compile "$siteStart" "$subdirs"
|
||||
|
|
Loading…
Reference in a new issue