mirror of
https://github.com/pentoo/pentoo-overlay
synced 2025-12-09 01:44:03 +01:00
88 lines
2 KiB
Bash
88 lines
2 KiB
Bash
# Copyright 1999-2021 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=7
|
|
|
|
DISTUTILS_OPTIONAL=1
|
|
PYTHON_COMPAT=( python3_{7..9} )
|
|
inherit multilib distutils-r1
|
|
|
|
DESCRIPTION="A lightweight multi-platform, multi-architecture CPU emulator framework"
|
|
HOMEPAGE="http://www.unicorn-engine.org"
|
|
SRC_URI="https://github.com/unicorn-engine/unicorn/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
#https://github.com/unicorn-engine/unicorn/issues/1298
|
|
#KEYWORDS="amd64 ~arm64 x86"
|
|
|
|
IUSE_UNICORN_TARGETS="x86 m68k arm aarch64 mips sparc"
|
|
use_unicorn_targets=$(printf ' unicorn_targets_%s' ${IUSE_UNICORN_TARGETS})
|
|
IUSE="python ${use_unicorn_targets} static-libs"
|
|
|
|
REQUIRED_USE="|| ( ${use_unicorn_targets} )
|
|
python? ( ${PYTHON_REQUIRED_USE} )"
|
|
|
|
DEPEND="dev-libs/glib:2
|
|
virtual/pkgconfig
|
|
${PYTHON_DEPS}"
|
|
RDEPEND="python? ( ${PYTHON_DEPS} )"
|
|
|
|
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
|
|
fi
|
|
}
|
|
|
|
src_prepare() {
|
|
#build from sources
|
|
rm -r bindings/python/prebuilt || die "failed to remove prebuild"
|
|
|
|
default
|
|
wrap_python ${FUNCNAME}
|
|
}
|
|
|
|
src_configure(){
|
|
local target
|
|
unicorn_softmmu_targets=""
|
|
|
|
for target in ${IUSE_UNICORN_TARGETS} ; do
|
|
if use "unicorn_targets_${target}"; then
|
|
unicorn_targets+="${target} "
|
|
fi
|
|
done
|
|
|
|
#the following variable is getting recreated using UNICORN_ARCHS below
|
|
UNICORN_TARGETS=""
|
|
default
|
|
wrap_python ${FUNCNAME}
|
|
}
|
|
|
|
src_compile() {
|
|
export CC INSTALL_BIN PREFIX PKGCFGDIR LIBDIRARCH LIBARCHS CFLAGS LDFLAGS
|
|
UNICORN_ARCHS="${unicorn_targets}" \
|
|
UNICORN_STATIC="$(use static-libs && echo yes || echo no)" \
|
|
emake V=s
|
|
wrap_python ${FUNCNAME}
|
|
}
|
|
|
|
src_test() {
|
|
default
|
|
|
|
wrap_python ${FUNCNAME}
|
|
}
|
|
|
|
src_install() {
|
|
emake \
|
|
DESTDIR="${D}" \
|
|
LIBDIR="/usr/$(get_libdir)" \
|
|
UNICORN_STATIC="$(use static-libs && echo yes || echo no)"
|
|
install
|
|
wrap_python ${FUNCNAME}
|
|
}
|