diff options
Diffstat (limited to 'sci-mathematics/coq/coq-8.16.0.ebuild')
-rw-r--r-- | sci-mathematics/coq/coq-8.16.0.ebuild | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/sci-mathematics/coq/coq-8.16.0.ebuild b/sci-mathematics/coq/coq-8.16.0.ebuild new file mode 100644 index 000000000000..8f3da8dda4ab --- /dev/null +++ b/sci-mathematics/coq/coq-8.16.0.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV=${PV/_p/pl} +MY_P=${PN}-${MY_PV} + +inherit desktop dune + +DESCRIPTION="Proof assistant written in O'Caml" +HOMEPAGE="http://coq.inria.fr/" +SRC_URI="https://github.com/coq/coq/archive/V${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc gtk debug +ocamlopt" +RESTRICT="test" # fails + +RDEPEND=" + dev-ml/zarith:= + || ( + dev-ml/num + <dev-lang/ocaml-4.09.0[ocamlopt?] + ) + gtk? ( + >=dev-ml/lablgtk-3.1.2:3=[sourceview,ocamlopt?] + >=dev-ml/lablgtk-sourceview-3.1.2:3=[ocamlopt?] + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( + >=dev-java/antlr-4.7:4 + dev-python/antlr4-python3-runtime + dev-python/beautifulsoup4 + dev-python/pexpect + dev-python/sphinx_rtd_theme + dev-python/sphinxcontrib-bibtex + dev-tex/latexmk + dev-texlive/texlive-fontsextra + dev-texlive/texlive-latexextra + dev-texlive/texlive-xetex + media-fonts/freefont + ) +" + +DOCS=( CODE_OF_CONDUCT.md CONTRIBUTING.md CREDITS INSTALL.md README.md ) + +src_configure() { + local myconf=( + -prefix /usr + -libdir /usr/$(get_libdir)/coq + -mandir /usr/share/man + -docdir /usr/share/doc/${PF} + -datadir /usr/share/coq + -configdir /etc/xdg/${PN} + -with-doc $(usex doc) + ) + + use debug && myconf+=( -debug ) + use ocamlopt || myconf+=( -byte-only ) + + if use gtk ; then + if use ocamlopt ; then + myconf+=( -coqide opt ) + else + myconf+=( -coqide byte ) + fi + else + myconf+=( -coqide no ) + fi + + export CAML_LD_LIBRARY_PATH="${S}/kernel/byterun/" + + echo "Configure options: ${myconf[@]}" + sh ./configure ${myconf[@]} || die "configure failed" +} + +src_compile() { + emake STRIP="true" VERBOSE=1 COQ_USE_DUNE="" world +} + +src_test() { + emake STRIP="true" VERBOSE=1 COQ_USE_DUNE="" check +} + +src_install() { + local sym + local syms=( coq-core coqide-server ) + + emake STRIP="true" VERBOSE=1 COQ_USE_DUNE="" DESTDIR="${D}" install-library + dune-install coq-core coqide-server + + if use gtk ; then + dune-install coqide + make_desktop_entry "coqide" "Coq IDE" "${EPREFIX}/usr/share/coq/coq.png" + syms+=( coqide ) + fi + + use doc && emake DESTDIR="${D}" install-doc-all + einstalldocs + + # Dune installs into /usr/<libdir>/ocaml/<coq> but + # Coq wants /usr/<libdir>/<coq> ; symlink those directories + for sym in ${syms[@]} ; do + dosym $(ocamlc -where)/${sym} /usr/$(get_libdir)/${sym} + done +} |