summaryrefslogtreecommitdiff
path: root/gnu/packages/cpp.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r--gnu/packages/cpp.scm656
1 files changed, 430 insertions, 226 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index aac96f96a7..4bfaac6a7e 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -31,9 +31,9 @@
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022-2025 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022-2024 Zheng Junjie <873216071@qq.com>
-;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
-;;; Copyright © 2023 Sughosha <Sughosha@proton.me>
+;;; Copyright © 2023, 2025 Sughosha <Sughosha@disroot.org>
;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
@@ -48,6 +48,7 @@
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr>
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -103,6 +104,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libevent)
@@ -912,7 +914,7 @@ library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(define-public hyprgraphics
(package
(name "hyprgraphics")
- (version "0.1.5")
+ (version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -923,14 +925,18 @@ library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(snippet #~(substitute* "CMakeLists.txt" (("libjxl_cms") "")))
(sha256
(base32
- "0q7bpywn8ljsj3dymvv19cm7n0r51vg5hj1jsapdl5bwpwf7bf41"))))
+ "1xr2pbawwnnwjwzkgsy9s4wq1j85x4qhj3m4s2pwb9wp6g69da2g"))))
(build-system cmake-build-system)
(native-inputs (list gcc-15 pkg-config))
(inputs (list cairo
hyprutils
libjpeg-turbo
libjxl
+ ;; Note: The current librsvg-2.40 for non-Rust architectures
+ ;; is too old.
+ (librsvg-for-system)
libwebp
+ pango
pixman
spng))
(home-page "https://wiki.hypr.land/Hypr-Ecosystem/hyprgraphics/")
@@ -943,7 +949,7 @@ utilities used across the hypr* ecosystem.")
(define-public hyprlang
(package
(name "hyprlang")
- (version "0.6.3")
+ (version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -952,7 +958,7 @@ utilities used across the hypr* ecosystem.")
(file-name (git-file-name name version))
(sha256
(base32
- "05p4nghkr0qpqjvcjrgxjqjwswmvg245hmhlcgdacpvdfmn38m4i"))))
+ "080kibsllxfrlck4gix0ygr12gnvf9p9ybi589fsvpab9p9xw857"))))
(build-system cmake-build-system)
(arguments
(list
@@ -965,9 +971,9 @@ utilities used across the hypr* ecosystem.")
(string-append
"set(PKG_CONFIG_EXECUTABLE " #$(pkg-config-for-target) ")\n"
all))))))))
- (native-inputs (list gcc-14 pkg-config))
+ (native-inputs (list gcc-15 pkg-config))
(inputs (list hyprutils))
- (home-page "https://wiki.hyprland.org/Hypr-Ecosystem/hyprlang/")
+ (home-page "https://wiki.hypr.land/Hypr-Ecosystem/hyprlang/")
(synopsis "Official implementation library for hypr config language")
(description
"This package provides the official implementation for hypr configuration
@@ -977,7 +983,7 @@ language used in Hyprland.")
(define-public hyprutils
(package
(name "hyprutils")
- (version "0.8.1")
+ (version "0.10.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -986,7 +992,7 @@ language used in Hyprland.")
(file-name (git-file-name name version))
(sha256
(base32
- "15iwcgm6v7y4cm8l9yh3aig31va5xifswm47bind90mac7srar0p"))))
+ "0l4gdingspjv3fh7zkmdin37bjjxgxnxycn8agv4cr3n0kn9smxg"))))
(build-system cmake-build-system)
(arguments
(list
@@ -2041,11 +2047,10 @@ other values of screen objects, by setting their values as the tween starting
point and then, after each tween step, plugging back the result.")
(license license:expat)))
-;;; This older LTS release is kept for tensorflow.
-(define-public abseil-cpp-20200923.3
+(define-public abseil-cpp-20220623
(package
(name "abseil-cpp")
- (version "20200923.3")
+ (version "20220623.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2054,39 +2059,45 @@ point and then, after each tween step, plugging back the result.")
(file-name (git-file-name name version))
(sha256
(base32
- "1p4djhm1f011ficbjjxx3n8428p8481p20j4glpaawnpsi362hkl"))
+ "1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr"))
(patches
- (search-patches "abseil-cpp-fix-strerror_test.patch"
- "abseil-cpp-20200923.3-adjust-sysinfo.patch"
- "abseil-cpp-20200923.3-duration-test.patch"))))
+ (search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
- "-DABSL_RUN_TESTS=ON"
- "-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
- ;; Needed, else we get errors like:
- ;;
- ;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
- ;; undefined reference to symbol '_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
- ;; ld: /gnu/store/...-googletest-1.10.0/lib/libgmock.so:
- ;; error adding symbols: DSO missing from command line
- ;; collect2: error: ld returned 1 exit status
- "-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-max
- (lambda _
- (substitute* "absl/debugging/failure_signal_handler.cc"
- (("std::max\\(SIGSTKSZ, 65536\\)")
- "std::max<size_t>(SIGSTKSZ, 65536)"))))
- (add-before 'configure 'remove-gtest-check
- ;; The CMakeLists fails to find our googletest for some reason, but
- ;; it works nonetheless.
- (lambda _
- (substitute* "CMakeLists.txt"
- (("check_target\\(gtest\\)") "")
- (("check_target\\(gtest_main\\)") "")
- (("check_target\\(gmock\\)") "")))))))
+ (list
+ #:configure-flags
+ ;; The following convoluted expression has been crafted to avoid
+ ;; changing the derivation when removing inheritance from
+ ;; abseil-cpp-20200923.3.
+ #~(cons*
+ "-DABSL_BUILD_TESTING=ON"
+ (delete
+ "-DABSL_RUN_TESTS=ON"
+ (list "-DBUILD_SHARED_LIBS=ON"
+ "-DABSL_RUN_TESTS=ON"
+ "-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
+ ;; Needed, else we get errors like:
+ ;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
+ ;; undefined reference to symbol '_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
+ ;; ld: /gnu/store/...-googletest-1.10.0/lib/libgmock.so:
+ ;; error adding symbols: DSO missing from command line
+ ;; collect2: error: ld returned 1 exit status
+ "-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-max
+ (lambda _
+ (substitute* "absl/debugging/failure_signal_handler.cc"
+ (("std::max\\(SIGSTKSZ, 65536\\)")
+ "std::max<size_t>(SIGSTKSZ, 65536)"))))
+ (add-before 'configure 'remove-gtest-check
+ ;; The CMakeLists fails to find our googletest for some reason, but
+ ;; it works nonetheless.
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("check_target\\(gtest\\)") "")
+ (("check_target\\(gtest_main\\)") "")
+ (("check_target\\(gmock\\)") "")))))))
(native-inputs
(list googletest))
(home-page "https://abseil.io")
@@ -2096,29 +2107,6 @@ augment the C++ standard library. The Abseil library code is collected from
Google's C++ code base.")
(license license:asl2.0)))
-(define-public abseil-cpp-20220623
- (let ((base abseil-cpp-20200923.3))
- (package
- (inherit base)
- (name "abseil-cpp")
- (version "20220623.2")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/abseil/abseil-cpp")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr"))
- (patches
- (search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:configure-flags flags)
- `(cons* "-DABSL_BUILD_TESTING=ON"
- (delete "-DABSL_RUN_TESTS=ON" ,flags))))))))
-
(define-public abseil-cpp
(let ((base abseil-cpp-20220623))
(package
@@ -2419,7 +2407,7 @@ of C++14 components that complements @code{std} and Boost.")
(define-public poco
(package
(name "poco")
- (version "1.11.1")
+ (version "1.13.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2428,7 +2416,7 @@ of C++14 components that complements @code{std} and Boost.")
(file-name (git-file-name name version))
(sha256
(base32
- "0qkf8vb4qwds6idk9fkw6wjvcdk5k8h77x3gv47l0i4jfl5hwn8b"))))
+ "1b8w3s6j020r356s6j6ijpnvzjdby4qwwndhzhfjc3rm727m085g"))))
(build-system cmake-build-system)
(arguments
(list
@@ -3207,20 +3195,6 @@ validation.")
(home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0)))
-(define-public simdjson-0.6
- (package
- (inherit simdjson)
- (version "0.6.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/simdjson/simdjson")
- (commit (string-append "v" version))))
- (file-name (git-file-name (package-name simdjson) version))
- (sha256
- (base32
- "038i9nmk85vpxvs546w6cyci0ppdrrp5wnlv1kffxw29x71a3g5l"))))))
-
(define-public bloomberg-bde-tools
(package
(name "bloomberg-bde-tools")
@@ -3325,6 +3299,70 @@ but implemented for C++11, C++14, C++17 or C++20.")
(home-page "https://github.com/gulrak/filesystem")
(license license:expat)))
+(define-public bitsery
+ (package
+ (name "bitsery")
+ (version "5.2.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fraillt/bitsery")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0s628p6qayajan4v8arsmbvzsml8zhc56k01zhmnlakbl7v0vwip"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list "-DBITSERY_BUILD_TESTS=ON"
+ "-DCMAKE_CXX_FLAGS=-Wno-error=maybe-uninitialized")))
+ (native-inputs (list googletest))
+ (synopsis "Header only C++ binary serialization library")
+ (description "This package provides header only C++ binary serialization
+library. It is designed around the networking requirements for real-time data
+delivery, especially for games.")
+ (home-page "https://github.com/fraillt/bitsery")
+ (license license:expat)))
+
+(define-public function2
+ (package
+ (name "function2")
+ (version "4.2.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Naios/function2")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sn760zk79hfbf21v9qvf67mrrlnmw6a2rhrp5l440b6f4f3xbzr"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Unbundle googletest.
+ '(begin
+ (delete-file-recursively "test")
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(test\\)") ""))))))
+ (build-system cmake-build-system)
+ ;; The test size_match_layout fails on i586/i686. For more info:
+ ;; https://github.com/Naios/function2/issues/57
+ (arguments
+ (list #:tests? #f))
+ (synopsis "Improved implementations of std::function")
+ (description "This package provides the following implementations of
+std::function:
+@itemize
+@item copyable @code{fu2::function}
+@item move-only @code{fu2::unique_function} (capable of holding move only
+ types)
+@item non-owning @code{fu2::function_view} (capable of referencing callables in
+ a non owning way)
+@end itemize")
+ (home-page "https://naios.github.io/function2/")
+ (license license:boost1.0)))
+
(define-public cpp-mustache
(package
(name "cpp-mustache")
@@ -3365,38 +3403,6 @@ templated string type for compatibility with any STL-like string (std::string,
std::wstring, etc).")
(license license:boost1.0)))
-(define-public crc32c
- (package
- (name "crc32c")
- (version "1.1.2")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/crc32c")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0966lyy3w5cnrs0c0fkma4hga51k54hns72l4n76944awqssap7j"))
- (patches (search-patches "crc32c-unbundle-googletest.patch"))))
- (build-system cmake-build-system)
- (arguments
- (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
- "-DCRC32C_BUILD_BENCHMARKS=OFF"
- "-DCRC32C_USE_GLOG=OFF"
- (string-append
- "-DCRC32C_BUILD_TESTS="
- ;; TODO: perhaps infer #:tests?
- (if #$(%current-target-system)
- "OFF" "ON")))))
- (native-inputs (list googletest))
- (home-page "https://github.com/google/crc32c")
- (synopsis "Cyclic redundancy check")
- (description
- "This package provides architecture-specific implementations of the
-CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
- (license license:bsd-3)))
-
(define fast-float-test-files
(let ((name "fast-float-test-files")
(version "1.0.0"))
@@ -3664,34 +3670,36 @@ getopt(), getopt_long() and getopt_long_only().")
(define-public safeint
(package
(name "safeint")
- (version "3.0.27")
- (home-page "https://github.com/dcleblanc/SafeInt")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "01d2dpdhyw3lghmamknb6g39w2gg0sv53pgxlrs2la8h694z6x7s"))))
+ (version "3.0.28")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dcleblanc/SafeInt")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bgqvyz5zp4mqzkm9545r3564n52bcdnq8bjn6azhxdsmap26g56"))
+ (patches
+ (search-patches "safeint-disable-tests.patch"))))
(build-system cmake-build-system)
(arguments
- (list #:phases #~(modify-phases %standard-phases
- (replace 'install
- (lambda _
- (let ((include-dir (string-append #$output
- "/include")))
- (with-directory-excursion "../source"
- (install-file "SafeInt.hpp" include-dir)
- (install-file "safe_math.h" include-dir)
- (install-file "safe_math_impl.h" include-dir)))))
- (add-after 'install 'install-doc
- (lambda _
- (let ((doc-dir (string-append #$output
- "/share/doc/safeint")))
- (with-directory-excursion "../source"
- (install-file "helpfile.md" doc-dir))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (let ((include-dir (string-append #$output "/include")))
+ (with-directory-excursion "../source"
+ (install-file "SafeInt.hpp" include-dir)
+ (install-file "safe_math.h" include-dir)
+ (install-file "safe_math_impl.h" include-dir)))))
+ (add-after 'install 'install-doc
+ (lambda _
+ (let ((doc-dir (string-append #$output "/share/doc/safeint")))
+ (with-directory-excursion "../source"
+ (install-file "helpfile.md" doc-dir))))))))
+ (home-page "https://github.com/dcleblanc/SafeInt")
(synopsis "C and C++ library for managing integer overflows")
(description
"SafeInt is a class library for C++ that manages integer overflows. It
@@ -3731,78 +3739,84 @@ uint80_t, or uint1536_t. The provided types can be used in much the same
way as basic integer types.")
(license license:boost1.0))))
-(define-public wdl
- ;; No tag is available.
- (let ((commit "da86a62d11e46e4ecd8b16f9775cb5188340a0e2")
+(define-public swell
+ (let ((commit "3024ec8e000f769454b5ee4ac927dc5cecfc6a6b")
(revision "0"))
(package
- (name "wdl")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/justinfrankel/WDL")
- (commit commit)))
- (file-name (git-file-name name version))
- ;; This patch fixes error of undefined functions, due to not
- ;; linking libraries, and invalid object.
- (patches
- (search-patches "wdl-link-libs-and-fix-jnetlib.patch"))
- (sha256
- (base32
- "0hdb604szkbrlyffiw94rz8wx4nvmk3zdkycfirqgjs7mh0l6vbq"))
- (modules '((guix build utils)))
- ;; Unbundle third party libraries which are not needed.
- (snippet
- '(with-directory-excursion "WDL"
- (for-each delete-file-recursively
- (list "cmath"
- "libpng"
- "lice/glew"
- "giflib"
- "jpeglib"
- "zlib"))))))
+ (name "swell")
+ (version (git-version "0" revision commit)) ;no tags
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/justinfrankel/WDL")
+ (commit commit)))
+ (file-name (git-file-name "wdl" version))
+ (sha256
+ (base32
+ "1ssp5rwn224g01jj9k273q80w2q1qfj1vzgqvk3lfjrjga0jaj4w"))
+ (modules '((guix build utils)))
+ (snippet
+ '(with-directory-excursion "WDL"
+ ;; Delete 3rd party libraries and sample projects.
+ (for-each delete-file-recursively
+ (list "cmath"
+ "giflib"
+ "jpeglib"
+ "libpng"
+ "zlib"))
+ ;; Fix including headers from the system.
+ (substitute* (find-files "." "\\.(h|cpp)")
+ (("\\\".*giflib\\/gif_lib\\.h\\\"") "<gif_lib.h>")
+ (("\\\".*jpeglib\\/jpeglib\\.h\\\"") "<jpeglib.h>")
+ (("\\\".*jnetlib\\/asyncdns\\.h\\\"") "<jnetlib/asyncdns.h>")
+ (("\\\".*jnetlib\\/connection\\.h\\\"")
+ "<jnetlib/connection.h>")
+ (("\\\".*jnetlib\\/httpget\\.h\\\"") "<jnetlib/httpget.h>")
+ (("\\\".*jnetlib\\/jnetlib\\.h\\\"") "<jnetlib/jnetlib.h>")
+ (("\\\".*jnetlib\\/netinc\\.h\\\"") "<jnetlib/netinc.h>")
+ (("\\\".*libpng\\/png\\.h\\\"") "<png.h>")
+ (("\\\"\\.\\.\\/plush2\\/plush\\.h\\\"") "<plush2/plush.h>")
+ (("\\\".*zlib\\.h\\\"") "<zlib.h>"))
+ ;; Fix building jnetlib.
+ (substitute* "jnetlib/Makefile"
+ ;; Link the missing library.
+ (("-pthread") "-pthread -lstdc++")
+ ;; Remove the unavailable object.
+ ((" sercon\\.o") "")
+ ;; Add webserver.
+ (("util\\.o") "util.o webserver.o "))
+ ;; Fix building eel2.
+ (substitute* "eel2/Makefile"
+ ;; Do not build swell objects.
+ ((" \\$\\(SWELL_OBJS\\)") "")
+ ;; Do not depend again on the dependencies of swell.
+ (("(-lX11 -lXi|\\$\\(shell pkg-config.*\\))") "")
+ ;; Link swell.
+ (("-lGL") "-lGL -lSwell"))))))
(build-system gnu-build-system)
(arguments
- (list
- #:test-target "test"
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _ (chdir "WDL/swell")))
- (delete 'configure)
- (replace 'build
- (lambda _
- (with-directory-excursion ".."
- (invoke "make" "-Ceel2") ;build eel2
- (invoke "make" "-Cjnetlib")) ;build jnetlib
- (invoke "make" "SWELL_SUPPORT_GTK=true")
- (invoke "make" "libSwell.colortheme")))
- (replace 'install
- (lambda _
- (chdir "..")
-
- ;; Do not install these directories
- (delete-file-recursively "lice/test")
- (delete-file-recursively "swell/sample_project")
-
- ;; Install headers.
- (let ((include (string-append #$output "/include/WDL")))
- (for-each
- (lambda (file)
- (install-file file
- (string-append include "/"
- (dirname file))))
- (find-files "." "\\.h$")))
- (install-file "swell/libSwell.so"
- (string-append #$output "/lib"))
- (install-file "swell/libSwell.colortheme"
- (string-append #$output "/share/WDL"))
- (install-file "eel2/loose_eel"
- (string-append #$output "/libexec"))
- (install-file "jnetlib/jnl.a"
- (string-append #$output "/lib")))))))
- (native-inputs (list pkg-config nasm))
+ (list #:tests? #f ;test object does not exist
+ #:test-target "test"
+ #:make-flags #~'("SWELL_SUPPORT_GTK=1")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-after 'unpack 'change-directory
+ (lambda _ (chdir "WDL/swell")))
+ ;; No install rule.
+ (replace 'install
+ (lambda _
+ (install-file "libSwell.so"
+ (string-append #$output "/lib"))
+ (for-each
+ (lambda (file)
+ (when (not (string-contains file "/sample_project"))
+ (install-file file
+ (string-append #$output
+ "/include/SWELL"))))
+ (find-files "." "\\.h$")))))))
+ (native-inputs (list perl pkg-config))
(inputs
(list cairo
fontconfig
@@ -3815,26 +3829,107 @@ way as basic integer types.")
mesa
zlib))
(home-page "https://www.cockos.com/wdl/")
- (synopsis "Modestly reusable C++ libraries")
+ (synopsis "Windows emulation layer")
(description
- "WDL is a modestly reusable C++ library that offers the following:
+ "SWELL is a Windows emulation Layer. It provides a set of common APIs,
+common controls and win32-style extensions.")
+ (license license:zlib))))
+
+(define-public swell-colortheme
+ (package
+ (inherit swell)
+ (name "swell-colortheme")
+ (arguments
+ (substitute-keyword-arguments (package-arguments swell)
+ ((#:make-flags flags)
+ #~(append #$flags '("libSwell.colortheme")))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (install-file "libSwell.colortheme"
+ (string-append #$output
+ "/share/SWELL"))))))))
+ (native-inputs
+ (list pkg-config
+ gtk+)) ;only for compilation
+ (inputs '())
+ (synopsis "SWELL colortheme sample")
+ (description
+ "This package provides the default @code{libSwell.colortheme} file for
+programs that use @code{swell}.")))
+
+(define-public jnetlib
+ (package
+ (inherit swell)
+ (name "jnetlib")
+ (arguments
+ (substitute-keyword-arguments (package-arguments swell)
+ ((#:tests? _ #t) #t)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'change-directory
+ (lambda _ (chdir "WDL/jnetlib")))
+ (replace 'install
+ (lambda _
+ (install-file "jnl.a" (string-append #$output "/lib"))
+ (for-each (lambda (file)
+ (install-file file (string-append #$output
+ "/include"
+ "/jnetlib")))
+ (find-files "." "\\.h"))))))))
+ (native-inputs '())
+ (inputs '())
+ (synopsis "C++ asynchronous network abstraction layer")
+ (description
+ "JNetLib is a portable C++ asynchronous network abstraction layer. It
+features:
@itemize
-@item Inline classes for cleanly managing memory allocations, lists,
-queues, resource pools, strings, etc.
-@item File reading/writing wrappers
-@item Directory scanning API
-@item SHA-1 implementation
-@item Mergesort implementation
-@item Blowfish implementation
-@item Fast FFT implementation (based on DJBFFT)
-@item Audio tools
-@item LICE - Lightweight Image Compositing Engine
-@item WDL Virtual Window system
-@item Plush2 - Portable, lightweight software 3d rendering engine
-@item SWELL - Simple Windows Emulation Layer
-@item And more.
-@end itemize")
- (license license:zlib))))
+@item TCP connections support,
+@item listening sockets support,
+@item asynchronous DNS support,
+@item HTTP serving and getting support,
+@item Completely asynchronous love for single threaded apps.
+@end itemize")))
+
+(define-public eel2
+ (package
+ (inherit swell)
+ (name "eel2")
+ (arguments
+ (substitute-keyword-arguments (package-arguments swell)
+ ((#:tests? _ #t) #f) ;no tests
+ ;; FIXME: Remove this flag when this issue will be fixed:
+ ;; https://github.com/justinfrankel/WDL/issues/32.
+ ((#:make-flags _ '()) #~'("NO_GFX=1"))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'change-directory
+ (lambda _ (chdir "WDL/eel2")))
+ (replace 'install
+ (lambda _
+ ;; Install executable files.
+ (for-each (lambda (file)
+ (install-file file
+ (string-append #$output "/bin")))
+ '("eel_pp" "loose_eel"))
+ ;; Install headers.
+ (for-each (lambda (file)
+ (install-file file
+ (string-append #$output
+ "/include/EEL2")))
+ (find-files "." "\\.h$"))
+ ;; Install scripts.
+ (copy-recursively "scripts"
+ (string-append #$output
+ "/share/EEL2/scripts"))))))))
+ (native-inputs (list nasm))
+ (inputs (list jnetlib))
+ (home-page "https://www.cockos.com/EEL2/")
+ (synopsis "Expression evaluation library")
+ (description
+ "EEL2 is an expression evaluation library and realtime compiler based on
+@uref{http://1014.org/code/nullsoft/avs/, AVS's EEL}.")))
(define-public juce
(package
@@ -4106,6 +4201,115 @@ for C++17 string-view.")
(description "This package provides simple string utilities for C++.")
(license license:gpl3+))))
+(define-public tfel
+ (package
+ (name "tfel")
+ (version "4.2.2") ;Keep in sync with compatible version of mgis
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thelfer/tfel")
+ (commit (string-append "TFEL-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14br7n76qfh651hvmn1i0ma5lr5ayhvj4ay2182isx26m1j15cfz"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "-Denable-portable-build=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Test targets are not build by default. By building these
+ ;; additional targets the majority of tests (over 6000) can
+ ;; be run.
+ (add-after 'build 'build-test-targets
+ (lambda* (#:key tests? parallel-build? #:allow-other-keys)
+ (if tests?
+ (invoke "make"
+ "MFrontGenericBehaviours"
+ "MFrontGenericBehaviours2"
+ "MFrontGenericBehaviours3"
+ "-j"
+ (if parallel-build?
+ (number->string (parallel-job-count)) "1"))
+ (format #t "test suite not run~%"))))
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (if tests?
+ (invoke "ctest"
+ "-R"
+ "generic"
+ "-E"
+ "brick"
+ "-j"
+ (if parallel-tests?
+ (number->string (parallel-job-count)) "1"))
+ (format #t "test suite not run~%")))))))
+ (home-page "https://thelfer.github.io/tfel/web/index.html")
+ (synopsis "TFEL library and MFront code generator")
+ (description
+ "MFront is a code generator which translates a set of closely
+related domain specific languages into plain C++ on top of the TFEL library.")
+ ;; TFEL/MFront is released under either the GNU GPL licence with linking
+ ;; exception or the CECILL-A licence:
+ (license (list license:gpl3+ license:cecill))))
+
+(define-public mgis
+ (package
+ (name "mgis")
+ (version "2.2") ;Keep in sync with compatible version of tfel
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thelfer/MFrontGenericInterfaceSupport")
+ (commit (string-append "MFrontGenericInterfaceSupport-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00ij7gaqrzakvc3n6irq5z5b5nd08kik5i87prvnp9604ssa6h8k"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "-Denable-doxygen-doc=OFF" "-Denable-portable-build=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Test targets are not build by default. By building these
+ ;; additional targets some tests can be run.
+ (add-after 'build 'build-test-targets
+ (lambda* (#:key tests? parallel-build? #:allow-other-keys)
+ (if tests?
+ (invoke "make"
+ "BehaviourTest"
+ "MFrontGenericBehaviourInterfaceTest"
+ "MFrontGenericBehaviourInterfaceTest2"
+ "MFrontGenericBehaviourInterfaceTest3"
+ "-j"
+ (if parallel-build?
+ (number->string (parallel-job-count)) "1"))
+ (format #t "test suite not run~%"))))
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (if tests?
+ (invoke "ctest" "-R" "MFrontGenericBehaviourInterfaceTest"
+ "-j"
+ (if parallel-tests?
+ (number->string (parallel-job-count)) "1"))
+ (format #t "test suite not run~%")))))))
+ (inputs (list tfel))
+ (home-page "https://thelfer.github.io/mgis/web/index.html")
+ (synopsis
+ "MFrontGenericInterfaceSupport provides tools to handle MFront behaviours")
+ (description
+ "Those tools are meant to be used by solver developers to e.g. load
+MFront behaviours from external shared libraries and retrieve all relevant
+meta data function.")
+ ;; MFrontGenericInterfaceSupport is released under either the GNU LGPL license
+ ;; or the CECILL-C license:
+ (license (list license:lgpl3 license:cecill-c))))
+
(define-public tsl-hopscotch-map
(package
(name "tsl-hopscotch-map")