(define-module (strong-type) ;; #:use-module (guix build utils) #:use-module (guix build-system copy) ;; #: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 installation-source "../source") (define installation-target ".") (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 "08r10j6qdv18jxsxb4qfs2pfii65by65cmfvn1baag9vv1cd6idf") (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 install-everything `(list ,installation-source ,installation-target)) (define strong-type-git (string-append strong-type-github git-extension)) ;; ABSTRACTION LAYER -1 (define install-plan `(list ,install-everything)) (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-arguments (list #:install-plan install-plan)) (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 copy-build-system) (arguments get-strong-type-arguments) (synopsis get-strong-type-synopsis) (description get-strong-type-description) (license license:expat) (home-page get-home-page)))