gnu: cereal: Use cmake to build and install the library.

* gnu/packages/serialization.scm (cereal): Use cmake to build and
  install the library.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Ivan Gankevich 2021-09-21 01:15:48 +03:00 committed by Liliana Marie Prikler
parent 9057035d89
commit dfc0fedc2c
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -142,32 +142,19 @@ (define-public cereal
"0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
(build-system cmake-build-system)
(arguments
`(;; The only included tests are portability tests requiring
;; cross-compilation and boost. Since we are building cereal on more
;; platforms anyway, there is no compelling reason to build the tests.
#:tests? #f
#:out-of-source? #f
`(#:configure-flags '("-DSKIP_PORTABILITY_TEST=ON")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(substitute* "doc/doxygen.in"
(("@CMAKE_CURRENT_BINARY_DIR@") ".")
(("@CMAKE_CURRENT_SOURCE_DIR@") "."))
(with-directory-excursion "doc"
(invoke "doxygen" "doxygen.in"))))
;; There is no "install" target, so we have to provide our own
;; "install" phase.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/cereal/docs"))
(include (string-append out "/include/cereal")))
(mkdir-p doc)
(mkdir-p include)
(copy-recursively "include/cereal" include)
(copy-recursively "doc/html" doc)))))))
(add-before 'configure 'skip-sandbox
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(sandbox\\)") ""))))
(add-after 'install 'install-doc
(lambda _
(let ((doc (string-append %output "/share/doc/html")))
(invoke "make" "doc")
(mkdir-p doc)
(copy-recursively "doc/html" doc)))))))
(native-inputs
`(("doxygen" ,doxygen)))
(home-page "https://uscilab.github.io/cereal/")