blob: a9acc50bea9f7c1c3fa9658a08921b5a45ffa914 (
about) (
plain)
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
|
(define-module (refl-cpp)
#:use-module (guix build-system cmake)
#:use-module (guix git-download)
#:use-module ((guix licenses)
:prefix license:)
#:use-module (guix packages))
;; DATA LAYER
(define refl-cpp-description-lines
(list "refl-cpp is a header-only library which provides compile-time "
"reflection and introspection capabilities to C++. By encoding type "
"metadata in the type system, refl-cpp allows you to process types and "
"their fields and functions via constexpr and template "
"metaprogramming."))
(define refl-cpp-git-reference-url "https://github.com/veselink1/refl-cpp.git")
(define refl-cpp-hash "021aggcrh92ircxrk8g375czz5njn62h502arn265d672kn05nrq")
(define refl-cpp-home-page
"https://veselink1.github.io/refl-cpp/md__introduction.html")
(define refl-cpp-name "refl-cpp")
(define refl-cpp-synopsis "Static reflection for C++17")
(define refl-cpp-tests #f)
(define refl-cpp-version "v0.12.4")
;; ABSTRACTION LAYER -3
(define patch-install-rules
`(lambda _
(substitute* "cmake/install-rules.cmake"
(("include\\/refl-cpp")
"include"))))
;; ABSTRACTION LAYER -2
(define expose-header-file
`(add-after 'unpack
'expose-header
,patch-install-rules))
;; ABSTRACTION LAYER -1
(define refl-cpp-content-hash
(content-hash (base32 refl-cpp-hash)))
(define refl-cpp-git-reference
(git-reference (url refl-cpp-git-reference-url)
(commit refl-cpp-version)))
(define refl-cpp-phases
`(modify-phases %standard-phases
,expose-header-file))
;; ABSTRACTION LAYER 0
(define refl-cpp-arguments
(list #:phases refl-cpp-phases
#:tests? refl-cpp-tests))
(define refl-cpp-description
(string-concatenate refl-cpp-description-lines))
(define refl-cpp-origin
(origin (uri refl-cpp-git-reference)
(method git-fetch)
(hash refl-cpp-content-hash)))
;; SURFACE LAYER
(define-public refl-cpp
(package (name refl-cpp-name)
(version refl-cpp-version)
(source refl-cpp-origin)
(build-system cmake-build-system)
(arguments refl-cpp-arguments)
(synopsis refl-cpp-synopsis)
(description refl-cpp-description)
(license license:expat)
(home-page refl-cpp-home-page)))
|