diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-ml/llvm-ocaml |
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-ml/llvm-ocaml')
-rw-r--r-- | dev-ml/llvm-ocaml/Manifest | 8 | ||||
-rw-r--r-- | dev-ml/llvm-ocaml/llvm-ocaml-4.0.1.ebuild | 130 | ||||
-rw-r--r-- | dev-ml/llvm-ocaml/llvm-ocaml-5.0.0.ebuild | 133 | ||||
-rw-r--r-- | dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild | 133 | ||||
-rw-r--r-- | dev-ml/llvm-ocaml/llvm-ocaml-9999.ebuild | 138 | ||||
-rw-r--r-- | dev-ml/llvm-ocaml/metadata.xml | 7 |
6 files changed, 549 insertions, 0 deletions
diff --git a/dev-ml/llvm-ocaml/Manifest b/dev-ml/llvm-ocaml/Manifest new file mode 100644 index 000000000000..7fa9cb0857f6 --- /dev/null +++ b/dev-ml/llvm-ocaml/Manifest @@ -0,0 +1,8 @@ +DIST llvm-4.0.1.src.tar.xz 21065652 SHA256 da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51 SHA512 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d WHIRLPOOL 1626ff270f7ce4801d02a0797b227fda9314ff5c0c01d653111599e9a4d2854c4d9edc3c698a7abee8d79d6bce8b18dc619fbced3c07ca610d44a248d65830cc +DIST llvm-5.0.0.src.tar.xz 23411980 SHA256 e35dcbae6084adcf4abb32514127c5eabd7d63b733852ccdb31e06f1373136da SHA512 e6d8fdcb5bf27bded814d02f39f69c6171bc3a512d5957c03e5ac2e231f903b7de87634b059bd5c5da670f7c3a8f7a538f6299225799f15f921857f1452f6b3a WHIRLPOOL 6a99edbdc3e6726dc8ff9126b110fd7560faac46601407722e6dd80b5d894ff242521dc8fda7f4d879de83dac51c65645a37224f7e8def0d8d2f1e564b0531bb +EBUILD llvm-ocaml-4.0.1.ebuild 3035 SHA256 7001d6e93c538b67c9864fefc047fba5850054ab09bb688958247af2440bfa2b SHA512 ca97273920bd6ee717633afee2f94ae9bf04f0d16b6dcca9a9045784af32430a3825eb7658e64773dcb9be86624a801e1d08e0ea3ca0ecaf898cd4fd761c3ece WHIRLPOOL 36f503f0a9d8c192cbb453a23f9cda1af936645bae84667a68219cfbcffa298a5f37f4091f66cc04dc7a1c8fb660a07acf1af1d2ac1f9481436be3ec591c0839 +EBUILD llvm-ocaml-5.0.0.ebuild 3229 SHA256 742b12b44064f2b35b2f1b569d358f555ca1765d832ca00e9d524432cdc6f1bb SHA512 39b3cee9d7bb63d5974af7ff3237d283c551f37c6f43da20c901404ef01c6d144bbacf25e8eb4b4d8687d0106ebe3c74894957c719f129ad0a54b41ef8f49e07 WHIRLPOOL 6c1242221eaf07c2afbaa95065746ca79def83b6bbb88d94b2ed019b3926448a0614028a3d3eae53b0b6f47838352cdf9421f1b7a4b84b68ed8a3740cb6d1b35 +EBUILD llvm-ocaml-5.0.9999.ebuild 3231 SHA256 35fd17eb59c1b8c93fbf88f979b99366a4b76c1fec2727894a2f0d4ed164fb84 SHA512 9e41def8d16d5e491efd036fa97feb5cfeec92c1379426430195d79276fe5e5afc5b22e9a57956a73b6b92c8f5ba51f3bc6477bd5d27c0b1caafa8fd7a476260 WHIRLPOOL 9f2ab2bc0db7faf678a2d9f5f65d786f78e2bc5e5aa5088b69e9d58866467e99866482243c71cc5cc6110bf7b97991db6f21e2e7e775628e9cbfcbb0f2bf8733 +EBUILD llvm-ocaml-9999.ebuild 3490 SHA256 62d2137d8e8d9aa319caba933ce20849a99008ccd8d54147da6b5327de8f2ff5 SHA512 38f59400aa19712ef17b139e430fa3b4f33b2b2c36fbda30f2c5920790f1a980616a00162a45aa5aca33bd75d72dbd1cb59552fec7649968217afa818d137b95 WHIRLPOOL a7b812db5394111481c0b84eb77a46601b21bf18d4c7f518d673c7517c58e476e6d37027c2d9a22e0e05a12633a11f0fa7de81bd88f95d412f61b80b3b204128 +MISC ChangeLog 776 SHA256 0c84adefbb0526e08504b88920916d40a7a6967b03a3d8caa21f8086e7a04755 SHA512 eae3e59337152ce312edb15d9e533d089829c9ce6f0f149cade74c2ade6f2d600c51d4ac5f1d5503ca1029230bc8060874f207e695deff4e4afcd661518daa9e WHIRLPOOL 4f7760c023e088fe325b07b372e29efc422dff63b0872bc3f4a465299e3990b62a387a68f4cbc91627f96befa3df4a59bb9c3e9fd2780a1aa78c078efea04de0 +MISC metadata.xml 216 SHA256 e94ba81dd2791908508a3993afdebf723cc617314c53c273b9bcca15a9c48327 SHA512 3485598147c953e72e1785693a489a7e7d73d59620b76054db9c0ce95d8bfa0e8ffec29da7f7a9d73a32e5b77eac07ca3306c56a972dc57fd89d477edaebf3d5 WHIRLPOOL 29145f5721e079e0548c5ef22424c65e6a5b2bfc4428918e923fcfdfc37e9b8749fb63e3c2eb5773c17fab276f7513dd66e326b906f1848911dceba7ae4b419a diff --git a/dev-ml/llvm-ocaml/llvm-ocaml-4.0.1.ebuild b/dev-ml/llvm-ocaml/llvm-ocaml-4.0.1.ebuild new file mode 100644 index 000000000000..a762ca1480b9 --- /dev/null +++ b/dev-ml/llvm-ocaml/llvm-ocaml-4.0.1.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils llvm python-any-r1 + +MY_P=llvm-${PV/_/} +DESCRIPTION="OCaml bindings for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P/_/}.src.tar.xz" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + >=dev-lang/ocaml-4.00.0:0= + dev-ml/ocaml-ctypes:= + ~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,}] + !sys-devel/llvm[ocaml(-)]" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + dev-ml/findlib + test? ( dev-ml/ounit + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +S=${WORKDIR}/${MY_P/_/}.src + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +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 + + # User patches + eapply_user +} + +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=OFF + -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+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + 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 || 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 +} diff --git a/dev-ml/llvm-ocaml/llvm-ocaml-5.0.0.ebuild b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.0.ebuild new file mode 100644 index 000000000000..d602e6ea65f6 --- /dev/null +++ b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.0.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils llvm python-any-r1 + +MY_P=llvm-${PV/_/} +DESCRIPTION="OCaml bindings for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P/_/}.src.tar.xz" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="debug test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + >=dev-lang/ocaml-4.00.0:0= + dev-ml/ocaml-ctypes:= + ~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,},debug?] + !sys-devel/llvm[ocaml(-)]" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + dev-ml/findlib + test? ( dev-ml/ounit + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +S=${WORKDIR}/${MY_P/_/}.src + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +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 + + # User patches + eapply_user +} + +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+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + # 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 || 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 +} diff --git a/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild new file mode 100644 index 000000000000..28df8234f9ed --- /dev/null +++ b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils git-r3 llvm python-any-r1 + +DESCRIPTION="OCaml bindings for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_50" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="0/${PV}" +KEYWORDS="" +IUSE="debug test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + >=dev-lang/ocaml-4.00.0:0= + dev-ml/ocaml-ctypes:= + ~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,},debug?] + !sys-devel/llvm[ocaml(-)]" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + dev-ml/findlib + test? ( dev-ml/ounit + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +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 + + # User patches + eapply_user +} + +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+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + # 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 || 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 +} diff --git a/dev-ml/llvm-ocaml/llvm-ocaml-9999.ebuild b/dev-ml/llvm-ocaml/llvm-ocaml-9999.ebuild new file mode 100644 index 000000000000..d0ff8f212f34 --- /dev/null +++ b/dev-ml/llvm-ocaml/llvm-ocaml-9999.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils git-r3 llvm python-any-r1 + +DESCRIPTION="OCaml bindings for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_EXPERIMENTAL_TARGETS=( AVR Nios2 RISCV WebAssembly ) +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore + "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="0/${PV}" +KEYWORDS="" +IUSE="debug test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + >=dev-lang/ocaml-4.00.0:0= + dev-ml/ocaml-ctypes:= + ~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,},debug?] + !sys-devel/llvm[ocaml(-)]" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + dev-ml/findlib + test? ( dev-ml/ounit + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + # Python is needed to run tests using lit + python_setup + + # User patches + eapply_user +} + +src_configure() { + local libdir=$(get_libdir) + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=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 + -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_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv" + ) + + # 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 +} diff --git a/dev-ml/llvm-ocaml/metadata.xml b/dev-ml/llvm-ocaml/metadata.xml new file mode 100644 index 000000000000..89c4bdb96049 --- /dev/null +++ b/dev-ml/llvm-ocaml/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>llvm@gentoo.org</email> + </maintainer> +</pkgmetadata> |