diff options
-rw-r--r-- | dev-ml/merlin/Manifest | 1 | ||||
-rw-r--r-- | dev-ml/merlin/files/merlin-4.2-ocaml-4.12.patch | 30 | ||||
-rw-r--r-- | dev-ml/merlin/merlin-4.2.ebuild | 82 |
3 files changed, 113 insertions, 0 deletions
diff --git a/dev-ml/merlin/Manifest b/dev-ml/merlin/Manifest index 22bfea096e99..2cc2c5d29fb5 100644 --- a/dev-ml/merlin/Manifest +++ b/dev-ml/merlin/Manifest @@ -1,2 +1,3 @@ DIST merlin-3.4.2.tar.gz 11016272 BLAKE2B 6fa55423df7ae8f7a8056e90be630f148dd101194de1921605843caf805bd6c9694fa3fe5b8c2f8eff5d57d7d0e9d8653036b6165a49af655158925c7af87d2f SHA512 8225366ebf27ca656ca89fe00d5aec581487ae332aeab81568e7606eaf575648a7614d4d2de8e0757a4e69c6f4014fefa4574c95da13d42acb310c9dd58a468a DIST merlin-4.1.tar.gz 2136082 BLAKE2B 3e7e1996611f0cefb3a33b2a78cd36b6e8b84d48bc48f46c45ba340c4be1b93b4a1876f8f4192e911c1c384c416ad7502ba3c7a2abb72eff01215f9fb26bfaf0 SHA512 f0f3ada007f8214b97a8557bddca87eded48ee01a8bb88aba6476e52881ead52d9f47e2666a9292b5c6a490e4cfdc7d8bb322e8489f78eaac7b0f80b6d1e87bc +DIST merlin-4.2-411.tar.gz 1601588 BLAKE2B 348b48ccf2b209bb511450e4ba46ceb3639b1a5facd70bec4519369907e162e95575fa101aa1b79c56719927272a4feebf981692ea2bcb2299fc2c284833b1be SHA512 9ca8d3690621019b8213abcc1a32e1d754b93849f0bbd79bcab3a14915acc295eb60a7b68e997a75e777daaef83d5ca3e81944b7baf352dc4cce8480905ea2d7 diff --git a/dev-ml/merlin/files/merlin-4.2-ocaml-4.12.patch b/dev-ml/merlin/files/merlin-4.2-ocaml-4.12.patch new file mode 100644 index 000000000000..f0d0c4301937 --- /dev/null +++ b/dev-ml/merlin/files/merlin-4.2-ocaml-4.12.patch @@ -0,0 +1,30 @@ +diff -u merlin-4.2-411/dot-merlin-reader.opam merlin-4.2-412/dot-merlin-reader.opam +--- merlin-4.2-411/dot-merlin-reader.opam 2021-04-13 11:01:00.000000000 +0200 ++++ merlin-4.2-412/dot-merlin-reader.opam 2021-04-13 10:53:39.000000000 +0200 +@@ -10,10 +10,12 @@ + ["dune" "build" "-p" name "-j" jobs] + ] + depends: [ +- "ocaml" {>= "4.02.1" & < "4.12"} +- "dune" {>= "1.8.0"} ++ "ocaml" {>= "4.06.1" } ++ "dune" {>= "2.7.0"} + "yojson" {>= "1.6.0"} + "ocamlfind" {>= "1.6.0"} + "csexp" {>= "1.2.3"} + "result" {>= "1.5"} + ] ++description: ++ "Helper process: reads .merlin files and gives the normalized content to merlin" +diff -u merlin-4.2-411/merlin.opam merlin-4.2-412/merlin.opam +--- merlin-4.2-411/merlin.opam 2021-04-13 11:01:00.000000000 +0200 ++++ merlin-4.2-412/merlin.opam 2021-04-13 10:53:39.000000000 +0200 +@@ -10,7 +10,7 @@ + ["dune" "runtest" "-p" "merlin,dot-merlin-reader" "-j" "1"] {with-test} + ] + depends: [ +- "ocaml" {>= "4.11.0" & < "4.12"} ++ "ocaml" {>= "4.12" & < "4.13"} + "dune" {>= "2.7.0"} + "dot-merlin-reader" {>= "4.0"} + "yojson" {>= "1.6.0"} diff --git a/dev-ml/merlin/merlin-4.2.ebuild b/dev-ml/merlin/merlin-4.2.ebuild new file mode 100644 index 000000000000..e3b8f11d9723 --- /dev/null +++ b/dev-ml/merlin/merlin-4.2.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# TODO: vim-plugin, although it's not clear how to make it work here +inherit elisp-common dune + +DESCRIPTION="Context sensitive completion for OCaml in Vim and Emacs" +HOMEPAGE="https://github.com/ocaml/merlin" +SRC_URI="https://github.com/ocaml/merlin/archive/v${PV}-411.tar.gz -> ${P}-411.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64" +IUSE="emacs +ocamlopt test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-ml/csexp:= + dev-ml/yojson:= + dev-ml/menhir:= + || ( + dev-lang/ocaml:0/4.11 + dev-lang/ocaml:0/4.12 + ) + emacs? ( + >=app-editors/emacs-23.1:* + app-emacs/auto-complete + app-emacs/company-mode + ) +" +DEPEND="${RDEPEND} + test? ( app-misc/jq )" + +SITEFILE="50${PN}-gentoo.el" + +S="${WORKDIR}"/${P}-411 + +src_prepare() { + has_version "dev-lang/ocaml:0/4.12" && \ + eapply "${FILESDIR}"/${P}-ocaml-4.12.patch + default + + # Handle installation via the eclass + rm emacs/dune || die + + # rm failing test + rm -r tests/test-dirs/locate/context-detection/cd-mod_constr.t || die +} + +src_compile() { + dune build @install + + if use emacs ; then + # Build the emacs integration + cd emacs || die + + # iedit isn't packaged yet + rm merlin-iedit.el || die + + elisp-compile *.el + fi +} + +src_install() { + dune_src_install + + if use emacs ; then + cd "${S}/emacs" || die + elisp-install ${PN} *.el *.elc + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |