Archived
1
0
Fork 0

gnu: supercollider: Use G-expressions.

* gnu/packages/audio.scm (supercollider)[source]: Use G-expression in snippet.
[arguments]: Use G-expressions.
<#:phases>: Replace `(assoc-ref outputs ...)` with `#$output`.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This commit is contained in:
Zhu Zihao 2023-04-28 21:33:28 +08:00 committed by 宋文武
parent c2cac2e985
commit 3972d5f03c
No known key found for this signature in database
GPG key ID: D415BF253B515976

View file

@ -3462,70 +3462,70 @@ background file post-processing.")
;; The build system doesn't allow us to unbundle the following ;; The build system doesn't allow us to unbundle the following
;; libraries. hidapi is also heavily patched and upstream not ;; libraries. hidapi is also heavily patched and upstream not
;; actively maintained. ;; actively maintained.
'(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" #~(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
"TLSF-2.4.6" "oscpack_1_1_0" "." ".."))) "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
(with-directory-excursion "./external_libraries" (with-directory-excursion "./external_libraries"
(for-each (for-each
delete-file-recursively delete-file-recursively
(scandir "." (scandir "."
(lambda (x) (lambda (x)
(and (eq? (stat:type (stat x)) 'directory) (and (eq? (stat:type (stat x)) 'directory)
(not (member (basename x) keep-dirs))))))) (not (member (basename x) keep-dirs)))))))
;; To find the Guix provided ableton-link library. ;; To find the Guix provided ableton-link library.
(substitute* "lang/CMakeLists.txt" (substitute* "lang/CMakeLists.txt"
(("include\\(\\.\\./external_libraries/link/\ (("include\\(\\.\\./external_libraries/link/\
AbletonLinkConfig\\.cmake\\)") AbletonLinkConfig\\.cmake\\)")
"find_package(AbletonLink NAMES AbletonLink ableton-link \ "find_package(AbletonLink NAMES AbletonLink ableton-link \
link REQUIRED)")))))) link REQUIRED)"))))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs (outputs
'("out" ;core language '("out" ;core language
"ide")) ;qt ide "ide")) ;qt ide
(arguments (arguments
`(#:configure-flags '("-DSYSTEM_BOOST=ON" (list
"-DSYSTEM_YAMLCPP=ON" #:configure-flags
"-DSC_QT=ON" #~(list "-DSYSTEM_BOOST=ON"
"-DCMAKE_BUILD_TYPE=Release" "-DSYSTEM_YAMLCPP=ON"
"-DFORTIFY=ON" "-DSC_QT=ON"
"-DLIBSCSYNTH=ON" "-DCMAKE_BUILD_TYPE=Release"
"-DSC_EL=OFF") ;scel is packaged individually as emacs-scel "-DFORTIFY=ON"
#:phases "-DLIBSCSYNTH=ON"
(modify-phases %standard-phases "-DSC_EL=OFF") ;scel is packaged individually as emacs-scel
;; HOME must be defined otherwise supercollider throws a "ERROR: #:phases
;; Primitive '_FileMkDir' failed." error when generating the doc. #~(modify-phases %standard-phases
;; The graphical tests also hang without it. ;; HOME must be defined otherwise supercollider throws a "ERROR:
(add-after 'unpack 'set-home-directory ;; Primitive '_FileMkDir' failed." error when generating the doc.
(lambda _ ;; The graphical tests also hang without it.
(setenv "HOME" (getcwd)))) (add-after 'unpack 'set-home-directory
(add-after 'unpack 'patch-scclass-dir (lambda _
(lambda* (#:key outputs #:allow-other-keys) (setenv "HOME" (getcwd))))
(let* ((out (assoc-ref outputs "out")) (add-after 'unpack 'patch-scclass-dir
(scclass-dir (lambda _
(string-append out (let* ((scclass-dir
"/share/SuperCollider/SCClassLibrary"))) (string-append #$output
(substitute* "lang/LangSource/SC_LanguageConfig.cpp" "/share/SuperCollider/SCClassLibrary")))
(((string-append (substitute* "lang/LangSource/SC_LanguageConfig.cpp"
"SC_Filesystem::instance\\(\\)\\.getDirectory" (((string-append
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME")) "SC_Filesystem::instance\\(\\)\\.getDirectory"
(string-append "Path(\"" scclass-dir "\")")))))) "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
(add-after 'patch-scclass-dir 'fix-struct-SOUNDFILE-tag (string-append "Path(\"" scclass-dir "\")"))))))
(lambda* _ (add-after 'patch-scclass-dir 'fix-struct-SOUNDFILE-tag
(display (getcwd)) (newline) (lambda _
(substitute* "include/plugin_interface/SC_SndBuf.h" (display (getcwd)) (newline)
(("SNDFILE_tag") (substitute* "include/plugin_interface/SC_SndBuf.h"
"sf_private_tag")))) (("SNDFILE_tag")
(add-before 'build 'prepare-x "sf_private_tag"))))
(lambda _ (add-before 'build 'prepare-x
(system "Xvfb &") (lambda _
(setenv "DISPLAY" ":0"))) (system "Xvfb &")
(add-before 'install 'install-ide (setenv "DISPLAY" ":0")))
(lambda* (#:key outputs #:allow-other-keys) (add-before 'install 'install-ide
(let* ((out (assoc-ref outputs "out")) (lambda _
(ide (assoc-ref outputs "ide")) (let* ((ide #$output:ide)
(scide "editors/sc-ide/scide")) (scide "editors/sc-ide/scide"))
(install-file scide (install-file scide
(string-append ide "/bin")) (string-append ide "/bin"))
(delete-file scide))))))) (delete-file scide)))))))
(native-inputs (native-inputs
(list ableton-link pkg-config qttools-5 xorg-server-for-tests)) (list ableton-link pkg-config qttools-5 xorg-server-for-tests))
(inputs (list jack-1 (inputs (list jack-1