Skip to content

Commit

Permalink
dev-ml/llvm-ocaml: Add 20.0.0_pre20240924 snapshot
Browse files Browse the repository at this point in the history
Signed-off-by: Michał Górny <[email protected]>
  • Loading branch information
mgorny committed Sep 24, 2024
1 parent 0e65a15 commit b44c1e1
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-ml/llvm-ocaml/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f
107 changes: 107 additions & 0 deletions dev-ml/llvm-ocaml/llvm-ocaml-20.0.0_pre20240924.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{10..13} )
inherit cmake llvm.org llvm-utils python-any-r1

DESCRIPTION="OCaml bindings for LLVM"
HOMEPAGE="https://llvm.org/"

LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0/${PV}"
IUSE="+debug test"
RESTRICT="!test? ( test )"

RDEPEND="
>=dev-lang/ocaml-4.00.0:0=
dev-ml/ocaml-ctypes:=
~sys-devel/llvm-${PV}:=[debug?]
!sys-devel/llvm[ocaml(-)]
"

DEPEND="
${RDEPEND}
"
BDEPEND="
${PYTHON_DEPS}
dev-lang/perl
dev-ml/findlib
"

LLVM_COMPONENTS=( llvm cmake third-party )
LLVM_USE_TARGETS=llvm
llvm.org_set_globals

src_configure() {
llvm_prepend_path "${LLVM_MAJOR}"

local libdir=$(get_libdir)
local mycmakeargs=(
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}

-DBUILD_SHARED_LIBS=OFF
-DLLVM_BUILD_LLVM_DYLIB=ON
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_OCAML_OUT_OF_TREE=ON

# cheap hack: LLVM combines both anyway, and the only difference
# is that the former list is explicitly verified at cmake time
-DLLVM_TARGETS_TO_BUILD=""
-DLLVM_EXPERIMENTAL_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
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-DLLVM_ENABLE_EH=ON
-DLLVM_ENABLE_RTTI=ON

-DLLVM_HOST_TRIPLE="${CHOST}"

-DPython3_EXECUTABLE="${PYTHON}"

# TODO: ocamldoc
)

use test && mycmakeargs+=(
-DLLVM_LIT_ARGS="$(get_lit_flags)"
)

# 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_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_build ocaml_all
}

src_test() {
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
cmake_build check-llvm-bindings-ocaml
}

src_install() {
DESTDIR="${D}" \
cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die

dodoc bindings/ocaml/README.txt
}

0 comments on commit b44c1e1

Please sign in to comment.