summaryrefslogtreecommitdiff
path: root/dev-ml
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ml')
-rw-r--r--dev-ml/llvm/Manifest2
-rw-r--r--dev-ml/llvm/llvm-22.1.4.ebuild108
2 files changed, 110 insertions, 0 deletions
diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest
index 26ff3209a956..b318b3f6a830 100644
--- a/dev-ml/llvm/Manifest
+++ b/dev-ml/llvm/Manifest
@@ -14,5 +14,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/dev-ml/llvm/llvm-22.1.4.ebuild b/dev-ml/llvm/llvm-22.1.4.ebuild
new file mode 100644
index 000000000000..629ae32b373d
--- /dev/null
+++ b/dev-ml/llvm/llvm-22.1.4.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+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}"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.00.0:0=
+ dev-ml/ocaml-ctypes:=
+ ~llvm-core/llvm-${PV}:=[debug?]
+ !llvm-core/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
+}