summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/why3')
-rw-r--r--sci-mathematics/why3/Manifest1
-rw-r--r--sci-mathematics/why3/metadata.xml33
-rw-r--r--sci-mathematics/why3/why3-1.4.0.ebuild92
3 files changed, 126 insertions, 0 deletions
diff --git a/sci-mathematics/why3/Manifest b/sci-mathematics/why3/Manifest
new file mode 100644
index 000000000000..a5e04572eda6
--- /dev/null
+++ b/sci-mathematics/why3/Manifest
@@ -0,0 +1 @@
+DIST why3-1.4.0.tar.gz 6306524 BLAKE2B ade7803a608d090ea06d974ae47e920993de92a5849d60bd63dba68252919a8f4fd1f0f6a3c975fdb727c4ae3afe13921b5d31a14c005e0d08f518e64bcf05e5 SHA512 b492f08a3c7073782b143a4849c47766b12045ad53c56aa8d251fd5b6bc1863ddebe260c99b3ddb27c4e1e1e9ab986c8b02286ec24f4c30f99f81f5f13fdc90a
diff --git a/sci-mathematics/why3/metadata.xml b/sci-mathematics/why3/metadata.xml
new file mode 100644
index 000000000000..6c2999e4f4d7
--- /dev/null
+++ b/sci-mathematics/why3/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <name>François-Xavier Carton</name>
+ <email>fx.carton91@gmail.com</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
+ <longdescription>
+ Why3 is a platform for deductive program verification. It provides
+ a rich language for specification and programming, called WhyML,
+ and relies on external theorem provers, both automated and interactive,
+ to discharge verification conditions. Why3 comes with a standard
+ library of logical theories (integer and real arithmetic, Boolean
+ operations, sets and maps, etc.) and basic programming data structures
+ (arrays, queues, hash tables, etc.). A user can write WhyML programs
+ directly and get correct-by-construction OCaml programs through an
+ automated extraction mechanism. WhyML is also used as an intermediate
+ language for the verification of C, Java, or Ada programs.
+ </longdescription>
+ <use>
+ <flag name="coq">Add <pkg>sci-mathematics/coq</pkg> support</flag>
+ <flag name="gtk">Build the IDE <pkg>x11-libs/gtk+</pkg></flag>
+ <flag name="re">Use Re (<pkg>dev-ml/re</pkg>) instead of Str for regular expressions</flag>
+ <flag name="sexp">Add support for outputting S-expressions with <pkg>dev-ml/ppx_sexp_conv</pkg></flag>
+ <flag name="zarith">Use Zarith (<pkg>dev-ml/zarith</pkg>) instead of Nums (<pkg>dev-ml/num</pkg>) for computations</flag>
+ <flag name="zip">Enable compression of session files</flag>
+ </use>
+</pkgmetadata>
diff --git a/sci-mathematics/why3/why3-1.4.0.ebuild b/sci-mathematics/why3/why3-1.4.0.ebuild
new file mode 100644
index 000000000000..42012b020215
--- /dev/null
+++ b/sci-mathematics/why3/why3-1.4.0.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools findlib
+
+DESCRIPTION="Platform for deductive program verification"
+HOMEPAGE="http://why3.lri.fr/"
+SRC_URI="https://why3.gitlabpages.inria.fr/releases/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="coq doc emacs gtk +ocamlopt re sexp +zarith zip"
+
+RDEPEND="
+ !sci-mathematics/why3-for-spark
+ >=dev-lang/ocaml-4.05.0[ocamlopt?]
+ >=dev-ml/menhir-20151112
+ dev-ml/num
+ coq? ( >=sci-mathematics/coq-8.6 )
+ doc? (
+ dev-python/sphinx
+ dev-python/sphinxcontrib-bibtex
+ || ( dev-texlive/texlive-latex dev-tex/latexmk dev-tex/rubber )
+ )
+ emacs? ( app-editors/emacs:* )
+ gtk? ( dev-ml/lablgtk:*[sourceview,ocamlopt?] )
+ re? ( dev-ml/re dev-ml/seq )
+ sexp? (
+ dev-ml/ppx_deriving[ocamlopt?]
+ dev-ml/ppx_sexp_conv[ocamlopt?]
+ dev-ml/sexplib[ocamlopt?]
+ )
+ zarith? ( dev-ml/zarith )
+ zip? ( dev-ml/camlzip )
+"
+DEPEND="${RDEPEND}"
+
+DOCS=( CHANGES.md README.md )
+
+src_prepare() {
+ mv configure.in configure.ac || die
+ sed -i 's/configure\.in/configure.ac/g' Makefile.in || die
+ sed -e '/^lib\/why3[a-z]*\$(EXE):/{n;s/-Wall/$(CFLAGS) $(LDFLAGS)/}' \
+ -e '/^%.o: %.c/{n;s/\$(CC).*-o/$(CC) $(CFLAGS) -o/}' \
+ -i Makefile.in || die
+
+ eautoreconf
+ default
+}
+
+src_configure() {
+ local myconf=(
+ --disable-hypothesis-selection
+ --disable-pvs-libs
+ --disable-isabelle-libs
+ --disable-frama-c
+ --disable-infer
+ --disable-web-ide
+ $(use_enable coq coq-libs)
+ $(use_enable doc)
+ $(use_enable emacs emacs-compilation)
+ $(use_enable gtk ide)
+ $(use_enable ocamlopt native-code)
+ $(use_enable re)
+ $(use_enable sexp pp-sexp)
+ $(use_enable zarith)
+ $(use_enable zip)
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+ emake plugins
+ use doc && emake doc
+}
+
+src_install(){
+ findlib_src_preinst
+ emake install install-lib DESTDIR="${ED}"
+
+ einstalldocs
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ if use doc; then
+ dodoc doc/latex/manual.pdf
+ dodoc -r doc/html
+ fi
+}