summaryrefslogtreecommitdiff
path: root/packages/komodo/strong-type.scm
blob: 781a04b506b106543ca721345ce7cb4cee1072b2 (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
(define-module (strong-type)
  #:use-module (guix build-system cmake)
  #:use-module (guix git-download)
  #:use-module ((guix licenses)
		#:prefix license:)
  #:use-module (guix packages))

;; DATA LAYER

(define git-extension ".git")

(define strong-type-description-lines
  (list "This tiny library provides a way to wrap an existing type in order to "
	"give it additional meaning."))

(define strong-type-github "https://github.com/doom/strong_type")

(define strong-type-hash "021aggcrh92ircxrk8g375czz5njn62h502arn265d672kn05nrq")

(define strong-type-name "strong-type")

(define strong-type-synopsis-lines
  (list "C++ implementation of strong types"))

(define strong-type-version "1.0.3")

;; ABSTRACTION LAYER -2

(define strong-type-git
  (string-append strong-type-github git-extension))

;; ABSTRACTION LAYER -1

(define strong-type-content-hash
  (content-hash (base32 strong-type-hash)))

(define strong-type-git-reference
  (git-reference (url strong-type-git)
		 (commit strong-type-version)))

;; ABSTRACTION LAYER -0

(define get-strong-type-description
  (string-concatenate strong-type-description-lines))

(define get-home-page strong-type-github)

(define get-strong-type-name strong-type-name)

(define get-strong-type-origin
  (origin (uri strong-type-git-reference)
	  (method git-fetch)
	  (hash strong-type-content-hash)))

(define get-strong-type-synopsis
  (string-concatenate strong-type-synopsis-lines))

(define get-strong-type-version strong-type-version)

;; SURFACE LAYER

(define-public strong-type
  (package (name get-strong-type-name)
	   (version get-strong-type-version)
	   (source get-strong-type-origin)
	   (build-system cmake-build-system)
	   (synopsis get-strong-type-synopsis)
	   (description get-strong-type-description)
	   (license license:expat)
	   (home-page get-home-page)))