summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-04-05 04:07:00 +0100
committerSam James <sam@gentoo.org>2022-04-05 04:07:25 +0100
commit240562f9dcc5a49a7a761354807dd6594958d5d3 (patch)
treefac067629b80e15860aced5d48ac1fd69cdd2fcf /dev-libs
parentdev-util/ropper: version bump 1.13.7 (diff)
downloadgentoo-240562f9dcc5a49a7a761354807dd6594958d5d3.tar.gz
gentoo-240562f9dcc5a49a7a761354807dd6594958d5d3.tar.bz2
gentoo-240562f9dcc5a49a7a761354807dd6594958d5d3.zip
dev-libs/keystone: support LLVM 13, LLVM 14
Thanks-to: Joonas Niilola <juippis@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/keystone/keystone-0.9.2-r1.ebuild84
-rw-r--r--dev-libs/keystone/keystone-9999.ebuild10
2 files changed, 89 insertions, 5 deletions
diff --git a/dev-libs/keystone/keystone-0.9.2-r1.ebuild b/dev-libs/keystone/keystone-0.9.2-r1.ebuild
new file mode 100644
index 000000000000..c0221f1ff7a7
--- /dev/null
+++ b/dev-libs/keystone/keystone-0.9.2-r1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT=14
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python3_{8,9,10} )
+
+inherit cmake distutils-r1 llvm
+
+DESCRIPTION="assembly/assembler framework + bindings"
+HOMEPAGE="https://www.keystone-engine.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/keystone-engine/keystone.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/keystone-engine/keystone/archive/${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+fi
+S="${WORKDIR}"/${P/_rc/-rc}
+
+LICENSE="GPL-2"
+SLOT="0"
+
+# Keep in sync with llvm/CMakeLists.txt, subset of sys-devel/llvm
+ALL_LLVM_TARGETS=( AArch64 ARM Hexagon Mips PowerPC Sparc SystemZ X86 )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
+
+IUSE="python ${ALL_LLVM_TARGETS[*]}"
+
+RDEPEND="
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=[${LLVM_TARGET_USEDEPS// /,}]
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="
+ || ( ${ALL_LLVM_TARGETS[*]} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+wrap_python() {
+ if use python; then
+ pushd bindings/python >/dev/null || die
+ distutils-r1_${1} "$@"
+ popd >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i '/NOT uppercase_CMAKE_BUILD_TYPE MATCHES/ s/DEBUG/GENTOO|DEBUG/' \
+ llvm/CMakeLists.txt || die
+ cmake_src_prepare
+ wrap_python ${FUNCNAME}
+}
+
+src_configure() {
+ local libdir="$(get_libdir)"
+ local mycmakeargs=(
+ -DCMAKE_CONFIGURATION_TYPES="Gentoo"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DBUILD_SHARED_LIBS=ON
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+ )
+
+ cmake_src_configure
+ wrap_python ${FUNCNAME}
+}
+
+src_compile() {
+ cmake_src_compile
+ wrap_python ${FUNCNAME}
+}
+
+src_install() {
+ cmake_src_install
+ wrap_python ${FUNCNAME}
+}
diff --git a/dev-libs/keystone/keystone-9999.ebuild b/dev-libs/keystone/keystone-9999.ebuild
index 7ef25cfa1b43..c0221f1ff7a7 100644
--- a/dev-libs/keystone/keystone-9999.ebuild
+++ b/dev-libs/keystone/keystone-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-LLVM_MAX_SLOT=12
+LLVM_MAX_SLOT=14
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{8,9,10} )
@@ -19,6 +19,7 @@ else
SRC_URI="https://github.com/keystone-engine/keystone/archive/${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
fi
+S="${WORKDIR}"/${P/_rc/-rc}
LICENSE="GPL-2"
SLOT="0"
@@ -41,8 +42,6 @@ REQUIRED_USE="
python? ( ${PYTHON_REQUIRED_USE} )
"
-S=${WORKDIR}/${P/_rc/-rc}
-
wrap_python() {
if use python; then
pushd bindings/python >/dev/null || die
@@ -53,6 +52,7 @@ wrap_python() {
src_prepare() {
default
+
sed -i '/NOT uppercase_CMAKE_BUILD_TYPE MATCHES/ s/DEBUG/GENTOO|DEBUG/' \
llvm/CMakeLists.txt || die
cmake_src_prepare