diff options
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r-- | gnu/packages/cpp.scm | 656 |
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") |