diff options
| author | Danny Milosavljevic <dannym@friendly-machines.com> | 2025-01-20 00:56:27 +0100 |
|---|---|---|
| committer | Danny Milosavljevic <dannym@friendly-machines.com> | 2025-01-20 22:19:35 +0100 |
| commit | 5d46903b4c1982e6ee1959c1578c57020bd0773a (patch) | |
| tree | 9c8c5cfa0cd3af25545eea1e198186e7b96cd088 /gnu/packages/cpp.scm | |
| parent | ff87f8aeeee65fe84ca726c080b8622e9873d2a2 (diff) | |
gnu: Add aklomp-base64.
* gnu/packages/cpp.scm (aklomp-base64): New variable.
Change-Id: I95d1e254abf190c526ac06c2a52ebc3b656dee45
Diffstat (limited to 'gnu/packages/cpp.scm')
| -rw-r--r-- | gnu/packages/cpp.scm | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 3146cfea641..17b1c514d52 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -3562,3 +3562,92 @@ Specification for URL parser can be found from the WHATWG website.") "This is a simple C++ library that facilitates parsing command line arguments in a type independent manner.") (license license:expat))) + +(define-public aklomp-base64 + (package + (name "aklomp-base64") + (version "0.5.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aklomp/base64.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xc541vhq44d9i1vf5hyrznqd1kyad9qbvsghcfr17pk1xyqv1kl")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #t + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? parallel-tests? #:allow-other-keys) + (if tests? + (invoke "ctest" "-VV" "--build-config" "Release" "--output-on-failure") + (format #t "test suite not run~%"))))) + + #:configure-flags + #~(append + (list "-DBASE64_BUILD_TESTS=ON" + "-DCMAKE_BUILD_TYPE=Release") + (let ((system #$(or (%current-target-system) + (%current-system)))) + (cond + ;; ARM 64-bit (aarch64) + ((string-prefix? "aarch64-" system) + (list + "-DCMAKE_C_FLAGS=-march=armv8-a" + "-DNEON64_CFLAGS= " + "-DBASE64_WITH_NEON64=ON" + "-DBASE64_WITH_AVX2=OFF" + "-DBASE64_WITH_SSSE3=OFF" + "-DBASE64_WITH_SSE41=OFF" + "-DBASE64_WITH_SSE42=OFF" + "-DBASE64_WITH_AVX=OFF" + "-DBASE64_WITH_AVX512=OFF")) + ;; ARM 32-bit (armhf) + ((string-prefix? "armhf-" system) + (list + "-DCMAKE_C_FLAGS=-march=armv7 -mfpu=neon" + "-DNEON32_CFLAGS=-march=armv7 -mfpu=neon" + "-DBASE64_WITH_NEON32=ON" + "-DBASE64_WITH_AVX2=OFF" + "-DBASE64_WITH_SSSE3=OFF" + "-DBASE64_WITH_SSE41=OFF" + "-DBASE64_WITH_SSE42=OFF" + "-DBASE64_WITH_AVX=OFF" + "-DBASE64_WITH_AVX512=OFF")) + ;; x86_64 (with all extensions except AVX512). + ((string-prefix? "x86_64-" system) + (list + "-DAVX2_CFLAGS=-mavx2" + "-DSSSE3_CFLAGS=-mssse3" + "-DSSE41_CFLAGS=-msse4.1" + "-DSSE42_CFLAGS=-msse4.2" + "-DAVX_CFLAGS=-mavx" + "-DBASE64_WITH_AVX512=OFF")) + ;; i686 (32-bit x86, limited extensions) + ((string-prefix? "i686-" system) + (list + "-DSSE41_CFLAGS=-msse4.1" + "-DSSE42_CFLAGS=-msse4.2" + "-DBASE64_WITH_AVX=OFF" + "-DBASE64_WITH_AVX2=OFF" + "-DBASE64_WITH_AVX512=OFF")) + (else + (list + "-DBASE64_WITH_AVX2=OFF" + "-DBASE64_WITH_SSSE3=OFF" + "-DBASE64_WITH_SSE41=OFF" + "-DBASE64_WITH_SSE42=OFF" + "-DBASE64_WITH_AVX=OFF" + "-DBASE64_WITH_AVX512=OFF" + "-DBASE64_WITH_NEON32=OFF" + "-DBASE64_WITH_NEON64=OFF"))))))) + (synopsis "Fast base64 stream encoder/decoder") + (description "This package provides a base64 stream encoder/decoder +written in C99.") + (properties `((tunable? . #t))) + (home-page "https://github.com/aklomp/base64") + (license license:bsd-2))) |
