summary refs log tree commit diff
diff options
context:
space:
mode:
authorVinicius Monego <monego@posteo.net>2020-07-11 19:13:58 -0300
committerMarius Bakke <marius@gnu.org>2020-07-21 23:54:45 +0200
commit264070986f5c7a014b118c8768f1b937decfece8 (patch)
tree357fd0fbcccdc4c1dd8440e6a26f9d81712b939a
parent569959dd6688d6556ae8d0c569ec45cffb5461d5 (diff)
downloadguix-264070986f5c7a014b118c8768f1b937decfece8.tar.gz
gnu: Add chaiscript.
* gnu/packages/cpp.scm (chaiscript): New variable.

Signed-off-by: Marius Bakke <marius@gnu.org>
-rw-r--r--gnu/packages/cpp.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index cfbd11618e..8b4b99d495 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -167,6 +168,37 @@ accelerated implementation of common mathematical functions operating on
 batches.")
     (license license:bsd-3)))
 
+(define-public chaiscript
+  (package
+    (name "chaiscript")
+    (version "6.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ChaiScript/ChaiScript")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0i1c88rn1wwz8nf3dpapcdkk4w623m3nksfy5yjai10k9irkzy3c"))))
+    (build-system cmake-build-system)
+    (home-page "https://chaiscript.com/")
+    (synopsis "Embedded scripting language designed for C++")
+    (description
+     "ChaiScript is one of the only embedded scripting language designed from
+the ground up to directly target C++ and take advantage of modern C++
+development techniques.  Being a native C++ application, it has some advantages
+over existing embedded scripting languages:
+
+@enumerate
+@item Uses a header-only approach, which makes it easy to integrate with
+existing projects.
+@item Maintains type safety between your C++ application and the user scripts.
+@item Supports a variety of C++ techniques including callbacks, overloaded
+functions, class methods, and stl containers.
+@end enumerate\n")
+    (license license:bsd-3)))
+
 (define-public fifo-map
   (let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
          (revision "0")