cephes: update override to build with new version from quicklisp

embedded binaries are now removed from the source tree before build
This commit is contained in:
Kasper Gałkowski 2024-10-20 10:43:52 +02:00
parent fd3e88ed7f
commit f6b9e011c5
3 changed files with 44 additions and 18 deletions

View File

@ -177,15 +177,23 @@ let
asdf = "${asdfFasl}/asdf.${faslExt}"; asdf = "${asdfFasl}/asdf.${faslExt}";
}; };
preConfigure = '' configurePhase = ''
runHook preConfigure
source ${./setup-hook.sh} source ${./setup-hook.sh}
buildAsdfPath buildAsdfPath
runHook postConfigure
''; '';
buildPhase = optionalString (src != null) '' buildPhase = optionalString (src != null) ''
runHook preBuild
export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$src// export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$src//
export ASDF_OUTPUT_TRANSLATIONS="$src:$(pwd):${storeDir}:${storeDir}" export ASDF_OUTPUT_TRANSLATIONS="$src:$(pwd):${storeDir}:${storeDir}"
${pkg}/bin/${program} ${toString flags} < $buildScript ${pkg}/bin/${program} ${toString flags} < $buildScript
runHook postBuild
''; '';
# Copy compiled files to store # Copy compiled files to store
@ -200,6 +208,8 @@ let
concatMapStringsSep "\\|" (replaceStrings ["." "+"] ["[.]" "[+]"]) systems; concatMapStringsSep "\\|" (replaceStrings ["." "+"] ["[.]" "[+]"]) systems;
in in
'' ''
runHook preInstall
mkdir -pv $out mkdir -pv $out
cp -r * $out cp -r * $out
@ -207,6 +217,8 @@ let
find $out -name "*.asd" \ find $out -name "*.asd" \
| grep -v "/\(${mkSystemsRegex systems}\)\.asd$" \ | grep -v "/\(${mkSystemsRegex systems}\)\.asd$" \
| xargs rm -fv || true | xargs rm -fv || true
runHook postInstall
''; '';
dontPatchShebangs = true; dontPatchShebangs = true;

View File

@ -28,20 +28,29 @@ let
build = (build-asdf-system (args' // { version = args'.version + "-build"; })) build = (build-asdf-system (args' // { version = args'.version + "-build"; }))
.overrideAttrs(o: { .overrideAttrs(o: {
buildPhase = with builtins; '' buildPhase = with builtins; ''
runHook preBuild
mkdir __fasls mkdir __fasls
export ASDF_OUTPUT_TRANSLATIONS="$(pwd):$(pwd)/__fasls:${storeDir}:${storeDir}" export ASDF_OUTPUT_TRANSLATIONS="$(pwd):$(pwd)/__fasls:${storeDir}:${storeDir}"
export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$(pwd)// export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$(pwd)//
${o.pkg}/bin/${o.program} ${toString (o.flags or [])} < ${o.buildScript} ${o.pkg}/bin/${o.program} ${toString (o.flags or [])} < ${o.buildScript}
runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall
mkdir -pv $out mkdir -pv $out
rm -rf __fasls rm -rf __fasls
cp -r * $out cp -r * $out
runHook postInstall
''; '';
}); });
in build-asdf-system (args' // { in build-asdf-system (args' // {
# Patches are already applied in `build` # Patches are already applied in `build`
patches = []; patches = [];
postPatch = "";
src = build; src = build;
}); });
@ -151,9 +160,15 @@ let
cephes = build-with-compile-into-pwd { cephes = build-with-compile-into-pwd {
inherit (super.cephes) pname version src lispLibs; inherit (super.cephes) pname version src lispLibs;
patches = [ ./patches/cephes-make.patch ]; patches = [ ./patches/cephes-make.patch ];
postPatch = ''
find \( -name '*.dll' -o -name '*.dylib' -o -name '*.so' \) -delete
'';
postConfigure = '' postConfigure = ''
substituteAllInPlace cephes.asd substituteAllInPlace cephes.asd
''; '';
postInstall = ''
find $out -name '*.o' -delete
'';
}; };
clx-truetype = build-asdf-system { clx-truetype = build-asdf-system {

View File

@ -1,22 +1,21 @@
--- a/cephes.asd --- a/cephes.asd
+++ b/cephes.asd +++ b/cephes.asd
@@ -5,7 +5,7 @@ @@ -16,7 +16,7 @@
(defclass makefile (source-file) ((type :initform "m"))) (defclass makefile (source-file) ((type :initform "m")))
(defmethod perform ((o load-op) (c makefile)) t) (defmethod perform ((o load-op) (c makefile)) t)
(defmethod perform ((o compile-op) (c makefile)) (defmethod perform ((o compile-op) (c makefile))
- (let* ((lib-dir (system-relative-pathname "cephes" "scipy-cephes")) - (let* ((lib-dir (system-relative-pathname "cephes" "scipy-cephes/"))
+ (let* ((lib-dir #P"@out@/scipy-cephes") + (let* ((lib-dir #P"@out@/scipy-cephes/")
(lib (make-pathname :directory `(:relative ,(namestring lib-dir)) (lib (make-pathname :directory (pathname-directory lib-dir)
:name "libmd" :name #+(or (and unix (not darwin)) windows win32) "libmd"
:type #+darwin "dylib" #+(and unix (not darwin)) "so" #+(or windows win32) "dll")) #+(and darwin arm64) "libmd-arm64"
@@ -14,7 +14,7 @@ @@ -30,7 +30,7 @@
(format *error-output* "Library ~S exists, skipping build" lib) (format *error-output* "Library ~S exists, skipping build" lib)
(format *error-output* "Building ~S~%" lib)) (format *error-output* "Building ~S~%" lib))
(unless built (unless built
- (chdir (native-namestring lib-dir)) - (chdir (native-namestring lib-dir))
+ (chdir "scipy-cephes") + (chdir "scipy-cephes")
(run-program "make" :output t)))) (run-program "make" :output t)))))
(defsystem "cephes" (defsystem "cephes"
Diff finished. Thu Mar 28 08:13:30 2024