Subject: bug#25787: [PATCH 3/6] gnu: Add cryptopp.

From: Marius Bakke <[email-masked]>
Date: Wed, 22 Feb 2017 17:28:07 +0100

Marius Bakke <[email-masked]> writes:

>> +             (add-after 'install 'install-pkg-config
>> +               (lambda* (#:key outputs #:allow-other-keys)
>> +                 (let* ((out (assoc-ref outputs "out"))
>> +                        (pkgconfig-path (string-append out "/lib/pkgconfig")))
>> +                   (mkdir-p pkgconfig-path)
>> +                   (with-output-to-file
>> +                     (string-append pkgconfig-path "/libcrypto++.pc")
>> +                     (lambda _
>> +                       (format #t
>> +                         "prefix=~@*~a~@
>> +                          libdir=${prefix}/lib~@
>> +                          includedir=${prefix}/include~@
>> +                          Name: libcrypto++-~1@*~a~@
>> +                          Description: Class library of cryptographic schemes~@
>> +                          Version: ~1@*~a~@
>> +                          Libs: -L${libdir} -lcryptopp~@
>> +                          Cflags: -I${includedir}~%"
>> +                         out version)))))))))
>
> Ahh.. This is why it was let-bound. You can "unquote" version here to
> make it be evaluated without binding it at the top level. Note: You
> probably also have to "quasiquote" the arguments with ` instead of ' (on
> the line that contains #:phases).

I forgot to explain what "unquote" means. It's the ',' symbol, meaning
"insert the result of this expression". Read more about unquote and
quasiquote here:

https://www.gnu.org/software/guile/manual/guile.html#Expression-Syntax