gnu: Add lutok.

* gnu/packages/lua.scm (lutok): New variable.

Change-Id: I595b26c601c8ca8c997c86e8f8eb17fbe363a038
This commit is contained in:
Maxim Cournoyer 2024-01-24 13:58:07 -05:00 committed by Ludovic Courtès
parent 86d5774605
commit 312503f00e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -22,6 +22,7 @@
;;; Copyright © 2023 Valter Nazianzeno <manipuladordedados@gmail.com> ;;; Copyright © 2023 Valter Nazianzeno <manipuladordedados@gmail.com>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net> ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -50,11 +51,13 @@ (define-module (gnu packages lua)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages build-tools) #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
@ -909,6 +912,44 @@ (define-public lua5.2-bitop
(define-public lua5.1-bitop (define-public lua5.1-bitop
(make-lua-bitop "lua5.1-bitop" lua-5.1)) (make-lua-bitop "lua5.1-bitop" lua-5.1))
(define-public lutok
(package
(name "lutok")
(version "0.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/freebsd/lutok")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0a2vc2wy5hasw69h1mz768ywx6c4ccl9jzzd4ixddwba3z3ha03b"))))
(build-system gnu-build-system)
;; Disable the test suite to avoid a circular dependency on kyua.
(arguments (list #:tests? #f))
(native-inputs (list autoconf automake libtool pkg-config))
(inputs (list atf))
(propagated-inputs (list lua-5.2)) ;included in c_gate.hpp
(home-page "https://github.com/freebsd/lutok")
(synopsis "Lightweight C++ API for Lua")
(description "Lutok is a lightweight C++ API library for Lua.
Lutok provides thin C++ wrappers around the Lua C API to ease the interaction
between C++ and Lua. These wrappers make intensive use of @acronym{RAII,
Resource Acquisition is Initialization} to prevent resource leakage, expose
C++-friendly data types, report errors by means of exceptions and ensure that
the Lua stack is always left untouched in the face of errors. The library
also provides a small subset of miscellaneous utility functions built on top
of the wrappers.
Lutok focuses on providing a clean and safe C++ interface; the drawback is
that it is not suitable for performance-critical environments. In order to
implement error-safe C++ wrappers on top of a Lua C binary library, Lutok adds
several layers or abstraction and error checking that go against the original
spirit of the Lua C API and thus degrade performance.")
(license license:bsd-3)))
(define-public selene (define-public selene
(package (package
(name "selene") (name "selene")