mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: lem: Build included shared library.
* gnu/packages/text-editors.scm (lem): Build shared library. [source]: Delete precompiled binaries. [arguments]: Patch libvterm and build shared library. [inputs]: Add libvterm. Change-Id: I296f139f93032ccbb380e112c9c1e4fd681ae1a7
This commit is contained in:
parent
25c8178a73
commit
3048b6f204
1 changed files with 30 additions and 2 deletions
|
@ -165,25 +165,53 @@ (define-public lem
|
||||||
(snippet
|
(snippet
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils))
|
(use-modules (guix build utils))
|
||||||
(delete-file-recursively "roswell")))))
|
(delete-file-recursively "roswell")
|
||||||
|
;; Delete precompiled shared object files.
|
||||||
|
(delete-file-recursively "extensions/terminal/lib")))))
|
||||||
(build-system asdf-build-system/sbcl)
|
(build-system asdf-build-system/sbcl)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-shared-object-files
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((libvterm-lib (assoc-ref inputs "libvterm"))
|
||||||
|
(lib-dir (string-append libvterm-lib "/lib"))
|
||||||
|
(shared-lib-dir (string-append (assoc-ref outputs "out")
|
||||||
|
"/lib"))
|
||||||
|
(shared-lib (string-append shared-lib-dir
|
||||||
|
"/terminal.so")))
|
||||||
|
|
||||||
|
(substitute* "extensions/terminal/ffi.lisp"
|
||||||
|
(("terminal.so") shared-lib)))))
|
||||||
(add-after 'create-asdf-configuration 'build-program
|
(add-after 'create-asdf-configuration 'build-program
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(build-program
|
(build-program
|
||||||
(string-append (assoc-ref outputs "out") "/bin/lem")
|
(string-append (assoc-ref outputs "out") "/bin/lem")
|
||||||
outputs
|
outputs
|
||||||
#:dependencies '("lem-ncurses" "lem-sdl2")
|
#:dependencies '("lem-ncurses" "lem-sdl2")
|
||||||
#:entry-program '((lem:main) 0)))))))
|
#:entry-program '((lem:main) 0))))
|
||||||
|
(add-after 'build 'build-terminal-library
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((libvterm-lib (assoc-ref inputs "libvterm"))
|
||||||
|
(lib-dir (string-append libvterm-lib "/lib"))
|
||||||
|
(shared-lib-dir (string-append (assoc-ref outputs "out")
|
||||||
|
"/lib"))
|
||||||
|
(shared-lib (string-append shared-lib-dir
|
||||||
|
"/terminal.so")))
|
||||||
|
(mkdir-p shared-lib-dir)
|
||||||
|
(invoke "gcc" "extensions/terminal/terminal.c"
|
||||||
|
"-L" lib-dir "-lvterm"
|
||||||
|
"-Wl,-Bdynamic"
|
||||||
|
"-o" shared-lib
|
||||||
|
"-fPIC" "-shared")))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list sbcl-cl-ansi-text
|
(list sbcl-cl-ansi-text
|
||||||
sbcl-rove
|
sbcl-rove
|
||||||
sbcl-trivial-package-local-nicknames))
|
sbcl-trivial-package-local-nicknames))
|
||||||
(inputs
|
(inputs
|
||||||
(list
|
(list
|
||||||
|
libvterm
|
||||||
sbcl-alexandria
|
sbcl-alexandria
|
||||||
sbcl-trivia
|
sbcl-trivia
|
||||||
sbcl-trivial-gray-streams
|
sbcl-trivial-gray-streams
|
||||||
|
|
Loading…
Reference in a new issue