# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit flag-o-matic ninja-utils toolchain-funcs DESCRIPTION="A wine emulation dll for running x86 application on an arm64 host" HOMEPAGE="https://fex-emu.com" JEMALLOC_HASH="02ca52b5fefc0ccd0d2c4eaa1d17989cdd641927" CPP_OPTPARSE_HASH="9f94388a339fcbb0bc95c17768eb786c85988f6e" ROBIN_MAP_HASH="d5683d9f1891e5b04e3e3b2192b5349dc8d814ea" FMT_HASH="123913715afeb8a437e6388b4473fcc4753e1c9a" XXHASH_HASH="bbb27a5efb85b92a0486cf361a8635715a53f6ba" SRC_URI=" https://github.com/FEX-Emu/jemalloc/archive/${JEMALLOC_HASH}.tar.gz -> jemalloc-${JEMALLOC_HASH}.tar.gz https://github.com/Sonicadvance1/cpp-optparse/archive/${CPP_OPTPARSE_HASH}.tar.gz -> cpp-optparse-${CPP_OPTPARSE_HASH}.tar.gz https://github.com/FEX-Emu/robin-map/archive/${ROBIN_MAP_HASH}.tar.gz -> robin-map-${ROBIN_MAP_HASH}.tar.gz https://github.com/Cyan4973/xxHash/archive/${XXHASH_HASH}.tar.gz -> xxhash-${XXHASH_HASH}.tar.gz https://github.com/fmtlib/fmt/archive/${FMT_HASH}.tar.gz -> fmt-${FMT_HASH}.tar.gz https://github.com/FEX-Emu/FEX/archive/refs/tags/FEX-${PV}.tar.gz " S="${WORKDIR}/FEX-FEX-${PV}" LICENSE="MIT" SLOT="0" KEYWORDS="-* ~arm64" BDEPEND=" dev-build/cmake dev-util/llvm-mingw64 llvm-core/clang llvm-core/llvm " src_prepare() { has_version '/dev/null || die cmake -GNinja \ -DCMAKE_C_COMPILER_WORKS=1 \ -DCMAKE_CXX_COMPILER_WORKS=1 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE="${S}/toolchain_mingw.cmake" \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/fex-xtajit \ -DENABLE_LTO=False \ -DMINGW_TRIPLE=aarch64-w64-mingw32 \ -DBUILD_TESTS=False \ -DENABLE_JEMALLOC_GLIBC_ALLOC=False \ -DCMAKE_INSTALL_PREFIX=/usr \ -DENABLE_CCACHE=FALSE \ -DBUILD_FEXCONFIG=FALSE \ -DMINGW_BUILD=1 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_DISABLE_FIND_PACKAGE_fmt=true \ "${S}" || die popd >/dev/null || die } src_compile() { pushd "${WORKDIR}/build" >/dev/null || die eninja popd >/dev/null || die } src_install() { pushd "${WORKDIR}/build" >/dev/null || die DESTDIR="${D}" eninja install popd >/dev/null || die rm -r "${ED}/usr/"{include,share} || die } pkg_postinst() { elog "If you had already created a wine prefix, run wineboot -u" elog "to install x86 emulation support, or update it's local copy" elog "of the relevant files." }