commit: 4482e4cbc3ce6a09de78e5437ada2e4a908c6345
Author: Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de>
AuthorDate: Sun Sep 29 20:12:20 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 16 06:31:25 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4482e4cb
dev-util/unicorn: add 2.1.1
Signed-off-by: Mario Haustein <mario.haustein <AT> hrz.tu-chemnitz.de>
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-util/unicorn/Manifest | 1 +
dev-util/unicorn/metadata.xml | 3 ++
dev-util/unicorn/unicorn-2.1.1.ebuild | 92 +++++++++++++++++++++++++++++++++++
3 files changed, 96 insertions(+)
diff --git a/dev-util/unicorn/Manifest b/dev-util/unicorn/Manifest
index 7fc46933a0ac..fe438d78e2c7 100644
--- a/dev-util/unicorn/Manifest
+++ b/dev-util/unicorn/Manifest
@@ -1 +1,2 @@
DIST unicorn-2.0.1.gh.tar.gz 4070004 BLAKE2B
4ab8f92367e7df5762d29ed58dfff524f59053e28548b170b982d16988eea16df46851d2ea559d8beabb4f1315e5ee627f9ded755a4f3b1cfd6d863a50c633b6
SHA512
4249d33d38614ea1ca51e38c7838cb276306100aa44c65ad1b3e39304e4b856ac643a9c6f9d13678fc07bea58989a08b64653d17afe9e62bcef2936ba63e1b1f
+DIST unicorn-2.1.1.gh.tar.gz 4176172 BLAKE2B
3dd434121418b9a4eb69683cfca6ec0cd019b632492fbfff421eaf26f4907a2f30bf78699b3afe28df624037e3973a5110a6ea21bd233e66a04a689d3e3e5d1c
SHA512
d6184b87a0fb729397ec2ac2cb8bfd9d10c9d4276e49efa681c66c7c54d1a325305a920332a708e68989cc299d0d1a543a1ceeaf552a9b44ec93084f7bf85ef2
diff --git a/dev-util/unicorn/metadata.xml b/dev-util/unicorn/metadata.xml
index 0585a8a2d9d3..50bfe9d49714 100644
--- a/dev-util/unicorn/metadata.xml
+++ b/dev-util/unicorn/metadata.xml
@@ -9,6 +9,9 @@
<email>[email protected]</email>
<name>Sam James</name>
</maintainer>
+ <use>
+ <flag name="logging">Enable logging</flag>
+ </use>
<upstream>
<remote-id type="github">unicorn-engine/unicorn</remote-id>
<remote-id type="pypi">unicorn</remote-id>
diff --git a/dev-util/unicorn/unicorn-2.1.1.ebuild
b/dev-util/unicorn/unicorn-2.1.1.ebuild
new file mode 100644
index 000000000000..65e1adba73c3
--- /dev/null
+++ b/dev-util/unicorn/unicorn-2.1.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV=${PV/_/-}
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake distutils-r1
+
+DESCRIPTION="A lightweight multi-platform, multi-architecture CPU emulator
framework"
+HOMEPAGE="https://www.unicorn-engine.org"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/unicorn-engine/unicorn"
+else
+
SRC_URI="https://github.com/unicorn-engine/unicorn/archive/${MY_PV}.tar.gz ->
${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1"
+SLOT="0/2"
+IUSE="logging python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="${PYTHON_DEPS}
+ dev-libs/glib:2"
+RDEPEND="python? ( ${PYTHON_DEPS} )"
+BDEPEND="virtual/pkgconfig
+ python? ( ${DISTUTILS_DEPS} )"
+
+UNICORN_TARGETS="x86 arm aarch64 riscv mips sparc m68k ppc s390x tricore"
+
+# suppress warning wrt 'implicit function declaration' in config logs due to
+# auto-detection of some libc functions (bug #906919)
+QA_CONFIG_IMPL_DECL_SKIP=(
+ clock_adjtime
+ malloc_trim
+)
+
+wrap_python() {
+ if use python; then
+ # src_prepare
+ # Do not compile C extensions
+ export LIBUNICORN_PATH=1
+
+ pushd bindings/python >/dev/null || die
+ distutils-r1_${1} "$@"
+ popd >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ # Build from sources
+ rm -r bindings/python/prebuilt || die "failed to remove prebuilt files"
+
+ cmake_src_prepare
+ wrap_python ${FUNCNAME}
+}
+
+src_configure(){
+ local mycmakeargs=(
+ -DUNICORN_ARCH="${UNICORN_TARGETS// /;}"
+ -DUNICORN_LOGGING=$(usex logging)
+ -DZIG_BUILD=OFF
+ )
+
+ cmake_src_configure
+
+ wrap_python ${FUNCNAME}
+}
+
+src_compile() {
+ cmake_src_compile
+
+ wrap_python ${FUNCNAME}
+}
+
+src_install() {
+ cmake_src_install
+
+ if ! use static-libs; then
+ find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete
|| die
+ fi
+
+ wrap_python ${FUNCNAME}
+}