Subject: [bug#58261] [PATCH v2 01/13] gnu: Add fast-float.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 09 Oct 2022 12:04:06 +0200

Am Freitag, dem 07.10.2022 um 15:21 +0000 schrieb David Elsing:
> * gnu/packages/cpp.scm (fast-float): New variable.
> ---
>  gnu/packages/cpp.scm | 54
> ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
> 
> diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
> index d03e0bc7e1..a7404df563 100644
> --- a/gnu/packages/cpp.scm
> +++ b/gnu/packages/cpp.scm
> @@ -29,6 +29,7 @@
>  ;;; Copyright © 2022 muradm <[email-masked]>
>  ;;; Copyright © 2022 Attila Lendvai <[email-masked]>
>  ;;; Copyright © 2022 Arun Isaac <[email-masked]>
> +;;; Copyright © 2022 David Elsing <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -1907,3 +1908,56 @@ (define-public cpp-mustache
>  templated string type for compatibility with any STL-like string
> (std::string,
>  std::wstring, etc).")
>      (license license:boost1.0)))
> +
> +(define-public fast-float
> +  (package
> +    (name "fast-float")
> +    (version "3.5.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/fastfloat/fast_float")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "0z3rxxd0pwvw70dbnv63rm67biw829vdqf50y16isxm6g3sbrz8g"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:configure-flags
> +      #~(list
> +         "-DFASTFLOAT_TEST=ON"
> +         "-DSYSTEM_DOCTEST=ON")
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'patch-cmake-tests
> +            (lambda _
> +              (substitute* "tests/CMakeLists.txt"
> +               
> (("FetchContent_GetProperties\\(supplemental_test_files.*")
> +                 "")
> +                (("if\\(NOT supplemental_test_files_POPULATED.*")
> +                 (string-append
> +                  "set(supplemental_test_files_BINARY_DIR "
> +                  #$(this-package-native-input "test-data") "/data"
> +                  ")\nif(0)\n"))))))))
> +    (native-inputs
> +     `(("test-data"
> +        ,(let ((commit "97a0b2e638feb479387554cf253e346500541e7e"))
> +           (origin
> +             (method git-fetch)
> +             (uri (git-reference
> +                   (url
> +                   
> "https://github.com/fastfloat/supplemental_test_files.git")
> +                   (commit commit)))
> +             (file-name (git-file-name "fast_float_test-data"
> commit))
> +             (sha256
> +              (base32
> +              
> "0dxbiyzyh7i847i89ablfzypfc3ckhm7f74w98jsh73v1mppmxlf")))))
You can use the origin directly in the recipe via #$.  Alternatively,
search-input-directory "data" would probably also work.
> +       ("doctest" ,doctest)))
> +    (home-page "https://github.com/fastfloat/fast_float")
> +    (synopsis "Floating point number parser for C++")
> +    (description "@code{fast_float} is a header-only C++ library for
> parsing
> +floating point numbers from strings.  It implements the C++
> from_chars
> +functions for the float and double types.")
> +    (license (list license:asl2.0 license:expat)))) ; dual licensed
Cheers