You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.0 KiB

# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit dune
DESCRIPTION="A composable build system for OCaml"
HOMEPAGE="https://github.com/ocaml/dune"
SRC_URI="https://github.com/ocaml/dune/archive/${PV}.tar.gz -> dune-${PV}.tar.gz"
S="${WORKDIR}/dune-${PV}"
LICENSE="Apache-2.0"
SLOT="0/${PV}"
KEYWORDS="amd64 arm arm64 ~ppc ppc64 x86"
IUSE="+ocamlopt test"
RESTRICT="!test? ( test )"
BDEPEND="
~dev-ml/dune-${PV}
test? (
dev-ml/core_bench
dev-ml/menhir
dev-ml/opam
dev-ml/ppx_expect
)
"
DEPEND="
dev-ml/csexp:=[ocamlopt?]
dev-ml/findlib:=[ocamlopt?]
>=dev-lang/ocaml-4.09:=
"
RDEPEND="${DEPEND}"
# TODO for test deps:
# Add cram?
# Add dev-ml/js_of_ocaml once dev-ml/ocaml-base64 is ported to Dune
# Add coq?
src_prepare() {
default
# Keep this list in sync with dev-ml/dune-configurator
local bad_tests=(
# List of tests calling git, mercurial, etc
test/blackbox-tests/test-cases/dune-project-meta/main.t
test/blackbox-tests/test-cases/meta-template-version-bug.t
test/blackbox-tests/test-cases/subst/project-name-restriction.t
test/blackbox-tests/test-cases/subst/with-opam-file.t
test/blackbox-tests/test-cases/subst.t
test/blackbox-tests/test-cases/subst/unicode.t
test/blackbox-tests/test-cases/subst/from-project-file.t
test/blackbox-tests/test-cases/trace-file.t
otherlibs/build-info/test/run.t
test/expect-tests/vcs_tests.ml
# Strange failures, seemingly from newer versions of deps
test/blackbox-tests/test-cases/merlin/allow_approximate_merlin_warn.t
test/blackbox-tests/test-cases/merlin/merlin-tests.t
test/blackbox-tests/test-cases/merlin/github4125.t
test/blackbox-tests/test-cases/install-dry-run.t
test/blackbox-tests/test-cases/c-flags.t
test/blackbox-tests/test-cases/install-libdir.t
test/blackbox-tests/test-cases/dune-cache/trim.t
# Strange failures about opam not being initialised
test/blackbox-tests/test-cases/merlin/merlin-from-subdir.t
test/blackbox-tests/test-cases/merlin/symlinks.t
test/blackbox-tests/test-cases/merlin/src-dirs-of-deps.t
test/blackbox-tests/test-cases/merlin/per-module-pp.t
test/blackbox-tests/test-cases/merlin/server.t
test/blackbox-tests/test-cases/github1946.t
test/blackbox-tests/test-cases/github759.t
# Wants nodejs!
test/blackbox-tests/test-cases/jsoo/simple.t
test/blackbox-tests/test-cases/jsoo/inline-tests.t
test/blackbox-tests/test-cases/jsoo/github3622.t
# Wants js_of_ocaml (can't include yet b/c of ocaml-base64 porting)
test/blackbox-tests/test-cases/jsoo/explicit-js-mode-specified.t
# Wants coq which doesn't build for me right now
test/blackbox-tests/test-cases/coq/rec-module.t
test/blackbox-tests/test-cases/coq/compose-sub-theory.t
test/blackbox-tests/test-cases/coq/native-compose.t
test/blackbox-tests/test-cases/coq/base-unsound.t
test/blackbox-tests/test-cases/coq/base.t
test/blackbox-tests/test-cases/coq/native-single.t
test/blackbox-tests/test-cases/coq/compose-simple.t
test/blackbox-tests/test-cases/coq/ml-lib.t
test/blackbox-tests/test-cases/coq/extract.t
test/blackbox-tests/test-cases/coq/compose-plugin.t
# Unpackaged dependencies (a rabbit hole for now)
# utop -> lambda-term, zed
test/blackbox-tests/test-cases/utop/github3188.t
test/blackbox-tests/test-cases/utop/utop-simple.t
test/blackbox-tests/test-cases/utop/utop-default.t
test/blackbox-tests/test-cases/utop/utop-default-implementation.t
test/blackbox-tests/test-cases/utop/utop-ppx-rewriters.t
# ocamlformat
test/blackbox-tests/test-cases/formatting.t
# mdx
test/blackbox-tests/test-cases/mdx-stanza.t
# odoc
test/blackbox-tests/test-cases/odoc/odoc-simple.t
test/blackbox-tests/test-cases/odoc/odoc-package-mld-link.t
test/blackbox-tests/test-cases/odoc/multiple-private-libs.t
test/blackbox-tests/test-cases/odoc/odoc-unique-mlds.t
test/blackbox-tests/test-cases/odoc/github717-odoc-index.t
test/blackbox-tests/test-cases/odoc/warnings.t
)
rm -r ${bad_tests[@]} || die "Failed to remove broken/inappropriate tests"
}
src_configure() {
:
}