me
/
guix
Archived
1
0
Fork 0

gnu: Add freesasa.

* gnu/packages/chemistry.scm (freesasa): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
master
David Elsing 2022-10-13 21:04:18 +00:00 committed by Liliana Marie Prikler
parent 696f20f0f6
commit 06358ee715
No known key found for this signature in database
GPG Key ID: 442A84B8C70E2F87
1 changed files with 85 additions and 0 deletions

View File

@ -34,12 +34,14 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages c)
#:use-module (gnu packages cpp)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)
@ -55,6 +57,7 @@
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages stb)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
@ -666,3 +669,85 @@ It can be used for working with
@item crystallographic symmetry.
@end enumerate")
(license license:mpl2.0)))
(define-public freesasa
(package
(name "freesasa")
(version "2.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mittinatten/freesasa")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"07wdnahf3g355ryaiqvfxd5f4rl54wv8jwxcbn0nia89fqysbv0f"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove C files generated by Flex and Bison
(for-each delete-file
'("src/parser.c" "src/parser.h"
"src/lexer.c" "src/lexer.h"))))))
(outputs '("out" "doc"))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--enable-check"
"--enable-parser-generator"
"CXXFLAGS=-std=c++17"
"--enable-doxygen")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-libc++-linking
(lambda _
(substitute* "src/Makefile.am"
(("-lc\\+\\+") ""))))
(add-after 'unpack 'build-shared-library
(lambda _
(substitute* "src/Makefile.am"
(("lib_LIBRARIES") "lib_LTLIBRARIES")
(("libfreesasa\\.a") "libfreesasa.la")
(("freesasa_LDADD \\+= libfreesasa\\.la" prev)
(string-append prev "\nlibfreesasa_la_LIBADD"
" = -ljson-c ${libxml2_LIBS}\n"))
(("_a_SOURCES") "_la_SOURCES"))
(substitute* "configure.ac"
(("AC_PROG_INSTALL" inst)
(string-append "AM_PROG_LIBTOOL\n" inst)))
(substitute* "tests/Makefile.am"
(("libfreesasa\\.a") "libfreesasa.la"))))
(add-before 'build 'build-lexer-and-parser
(lambda _
(with-directory-excursion "src"
(invoke "make" "lexer.h" "parser.h"))))
(add-after 'install 'install-doc
(lambda _
(copy-recursively
"doc/html"
(string-append #$output:doc "/share/doc/"
#$name "-" #$version)))))))
(inputs (list gemmi json-c libxml2))
(native-inputs
(list autoconf
automake
bison
check
doxygen
fast-float
flex
libtool
pegtl
perl
pkg-config))
(home-page "https://freesasa.github.io/")
(synopsis "Calculate the solvent accessible surface area (SASA) of
molecules")
(description "FreeSASA is a command line tool and C-library for
calculating @acronym{SASAs, solvent accessible surface areas}. By default Lee
& Richards' algorithm is used, but Shrake & Rupley's is also available. Both
can be parameterized to arbitrary precision, and for high resolution versions
of the algorithms, the calculations give identical results.")
(license license:expat)))