-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathguix.scm
117 lines (115 loc) · 4.44 KB
/
guix.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
(use-modules
(guile-wayland packages guile-wayland)
(guile-wayland packages guile-xyz)
(guix utils) (guix packages)
((guix licenses) #:prefix license:)
(gnu packages xorg)
(guix download)
(guix git-download)
(gnu packages gettext)
(guix gexp)
(gnu packages gl)
(gnu packages xdisorg)
(guix build-system gnu)
(gnu packages bash)
(gnu packages)
(gnu packages autotools)
(gnu packages guile)
(gnu packages gtk)
(gnu packages guile-xyz)
(gnu packages ibus)
(gnu packages pkg-config)
(gnu packages texinfo)
(gnu packages pciutils)
(gnu packages wm)
(guix transformations)
(gnu packages freedesktop))
(define %srcdir
(dirname (current-filename)))
(define-public gwwm
(package
(name "gwwm")
(version "0.1")
(source (local-file "." "gwwm-checkout"
#:recursive? #t
#:select? (git-predicate %srcdir)))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list "GUILE_AUTO_COMPILE=0")
;;; XXX: is a bug? why can't use gexp for #:modules
#:modules `(((guix build guile-build-system)
#:select (target-guile-effective-version))
,@%gnu-build-system-modules)
#:imported-modules `((guix build guile-build-system)
,@%gnu-build-system-modules)
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'load-extension
(lambda* (#:key outputs #:allow-other-keys)
(substitute*
(find-files "." ".*\\.scm")
(("\\(load-extension \"libgwwm\" *\"(.*)\"\\)" _ o)
(string-append
(object->string
`(or (false-if-exception (load-extension "libgwwm" ,o))
(load-extension
,(string-append
(assoc-ref outputs "out")
"/lib/libgwwm.so")
,o))))))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(deps (map (lambda (a)
(assoc-ref inputs a ))
'("guile-wayland"
"guile-wlroots"
"guile-bytestructures"
"guile-bytestructure-class"
"guile-util572"
"guile-srfi-189"
"guile-srfi-145"
"guile-cairo"
"guile-xkbcommon"
"guile-libinput")))
(effective (target-guile-effective-version))
(mods (map (lambda (o)
(string-append
o "/share/guile/site/" effective))
(cons out deps)))
(gos
(map (lambda (o)
(string-append
o "/lib/guile/" effective "/site-ccache"))
(cons out deps))))
(wrap-program (search-input-file outputs "bin/gwwm")
#:sh (search-input-file inputs "bin/bash")
`("GUILE_AUTO_COMPILE" ":" = ("0"))
`("GUILE_LOAD_PATH" ":" prefix ,mods)
`("GUILE_LOAD_COMPILED_PATH" ":" prefix ,gos))))))))
(native-inputs
(list autoconf automake
pkg-config
libtool
gettext-minimal
guile-3.0-latest
bash-minimal
texinfo))
(inputs (list guile-3.0-latest
guile-cairo
guile-bytestructures
guile-bytestructure-class
guile-srfi-189
guile-srfi-145
guile-wlroots
wlroots-0.17
guile-util572
guile-xkbcommon
guile-libinput
guile-wayland))
(synopsis "")
(description "")
(home-page "")
(license license:gpl3+)))
gwwm