dev-ml/llvm-ocaml: Bump to 9.0.1 final

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2019-12-21 08:28:52 +01:00
parent 0a4be0b0b1
commit 985c0bbee8
2 changed files with 119 additions and 0 deletions

View File

@@ -3,3 +3,4 @@ DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c894
DIST llvm-9.0.0.src.tar.xz 32994768 BLAKE2B 7f09bff9bcada95ab9c920c78aef92b57e665d9188bab39c734084ceb03a801c942fed48ea77fabeeb6110c648cb69363c659a6ce93ebf67dbba5c187219b13b SHA512 1bb3341e1d231559b948f1505b33c2e2e03989f9b8bbfef0e0cdaff5ac43f85574c9ec5ac53399b914f497d6899425d861411024e8d7e1d1a338c1c6951ac658
DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c
DIST llvmorg-9.0.1-rc3.tar.gz 113205740 BLAKE2B 3ca81e812833ecc2ac1bacfdeb86f54609ee125ba7390ce6af0113e949496149102360f35a9a0194dff93fb5cb6ade40a68382a03a7e55771a13198abb7ca9de SHA512 ea56a4ee57aacdd00a1d6551cdc768ecce3124a0eb6a9d09fe060bb147019a5119b2a9eaca576474be42e0296293daa923edd86dadb6759df0c2d7fc7a74f9f1
DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

View File

@@ -0,0 +1,118 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
inherit cmake-utils llvm llvm.org multiprocessing python-any-r1
DESCRIPTION="OCaml bindings for LLVM"
HOMEPAGE="https://llvm.org/"
LLVM_COMPONENTS=( llvm )
llvm.org_set_globals
# Keep in sync with sys-devel/llvm
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="debug test ${ALL_LLVM_TARGETS[*]}"
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-lang/ocaml-4.00.0:0=
dev-ml/ocaml-ctypes:=
~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,},debug?]
!sys-devel/llvm[ocaml(-)]"
DEPEND="${RDEPEND}"
BDEPEND="
dev-lang/perl
dev-ml/findlib
test? ( dev-ml/ounit )
${PYTHON_DEPS}"
# least intrusive of all
CMAKE_BUILD_TYPE=RelWithDebInfo
pkg_setup() {
LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup
python-any-r1_pkg_setup
}
src_prepare() {
# Python is needed to run tests using lit
python_setup
cmake-utils_src_prepare
}
src_configure() {
local libdir=$(get_libdir)
local mycmakeargs=(
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DBUILD_SHARED_LIBS=ON
-DLLVM_OCAML_OUT_OF_TREE=ON
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-DLLVM_BUILD_TESTS=$(usex test)
# disable various irrelevant deps and settings
-DLLVM_ENABLE_FFI=OFF
-DLLVM_ENABLE_TERMINFO=OFF
-DHAVE_HISTEDIT_H=NO
-DWITH_POLLY=OFF
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-DLLVM_ENABLE_EH=ON
-DLLVM_ENABLE_RTTI=ON
-DLLVM_HOST_TRIPLE="${CHOST}"
# disable go bindings
-DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
# TODO: ocamldoc
)
use test && mycmakeargs+=(
-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
)
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
# also: custom rules for OCaml do not work for CPPFLAGS
use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
cmake-utils_src_configure
local llvm_libdir=$(llvm-config --libdir)
# an ugly hack; TODO: figure out a way to pass -L to ocaml...
cd "${BUILD_DIR}/${libdir}" || die
ln -s "${llvm_libdir}"/*.so . || die
if use test; then
local llvm_bindir=$(llvm-config --bindir)
# Force using system-installed tools.
sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \
"${BUILD_DIR}"/test/lit.site.cfg.py || die
fi
}
src_compile() {
cmake-utils_src_compile ocaml_all
}
src_test() {
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
cmake-utils_src_make check-llvm-bindings-ocaml
}
src_install() {
DESTDIR="${D}" \
cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
dodoc bindings/ocaml/README.txt
}