mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
app-emulation/fex-xtajit: Add 2509, add arm64ec support
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43593 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
4a74af411f
commit
cfe2ab2551
@@ -1,7 +1,11 @@
|
||||
DIST FEX-2506.tar.gz 2141240 BLAKE2B 330cc352d4dfc64605e04c69aef9e6dfa60fe8ac1123b4c759c766c492e22eddd2f27869d369bfe738d90cb73dfed7aa199c684442693625c518d1fb3be58e14 SHA512 13eba3a90766bf81ac0d818ebfed99bff39fb6d41d4ea042606b66e645d8cadda03fafae13947634df619c32f943e991c17da6139ea9019e228d05b47ecea7fd
|
||||
DIST FEX-2507.1.tar.gz 2178185 BLAKE2B b0086f34489edc56cd4cb3dfef53ee9f6acbf544fecb5b5698aa287808fd480929a5a33c1edadfbf25d3bb273aac17656b3b235559273c915fde9089643c69b3 SHA512 77ee18ba97f25c328b6e0312551b58106b72a267f1c94eabc397f58aefa8c775dd497f7a2700cf867ffdc93181bd117a8d11d5e4503709540a38d4acc8be06ec
|
||||
DIST FEX-2509.tar.gz 2206146 BLAKE2B 72a7e16ce60c262a58433d60db33aece016b866b443cc9b430a11d1bd09679e4e326d17fb34f296243246d0a02d14fc88b5018981b474f9fad821a68b58b596a SHA512 8de6531178a4ea41588730a3983c1707037067fac330b86c754810b0db3c40e8e75424da01651dd4fa8927bfe524312fbf383e444c725ce4e7c6b61d0ee651a7
|
||||
DIST cpp-optparse-9f94388a339fcbb0bc95c17768eb786c85988f6e.tar.gz 13218 BLAKE2B 8a9857b639509d66e59732e3cf84879da6eb714f48d55fe2e00c7ee3e5ae2e0be093eeb1b004b6d070766f5fedfd4173f11f6205a961f9e65bfa7848eb225024 SHA512 600559354c8a3e233f7d2d855a8325b747b6656eb05fe13b3fae31f7f41154968b995bc3a519b0c61e5db904d4bca4cb17eb72a2f35a1a273e275ec34593b92f
|
||||
DIST fmt-123913715afeb8a437e6388b4473fcc4753e1c9a.tar.gz 704027 BLAKE2B cfedab4c5eb083f6cc1b207d832e26f5efe50be740cbfa9cf63810bdbb447c6d1496ab0977c6f78d71389dedc5b4c663be852724838b7789bf7e9b4be90ea692 SHA512 730a597be2e31fcd887b6f46f775d02163b0206016b9c0270fe183af37fd7268d9f2d9553c7b25b7df526d464c6f59750e542e6907d677d7181b388817135515
|
||||
DIST fmt-20c8fdad0605a1627a3f6d15cad693a3fbe2ecbf.tar.gz 707692 BLAKE2B 43ceb50d81fa925b71a139bf3d84638d909209b681ba5f86d74c77f3c1cb93b2ab2b3c3b32065fd534fb0dbfd0c08430d7144db846ed7c7055959614739ed938 SHA512 f4f320d2689205fc94db905af5338a72c357f96834b07492b4816709a98861956675bfc3ab865066c4a66e5e3ac88414ab3551d437a6d73a2da7fdd3fe70b44d
|
||||
DIST jemalloc-02ca52b5fefc0ccd0d2c4eaa1d17989cdd641927.tar.gz 847982 BLAKE2B 7676066b106af133bb7dab4518aa63fe10341cf86175f8ed664b4850f240535c2107698876e9406a0f36e312f89cdb6785393e3883c212fd9cba3031047814ce SHA512 b15e1fdcff9f593dbaca88337a2ab784cb66491ef8794f72fbf67617c1f396c57ba1664deb53fa18e5c21a4bd777809ae4c03b1ce48f6e80ccabbcbd7668651d
|
||||
DIST jemalloc-ce24593018ca5d5af7e5661ceda9744e02b59f8f.tar.gz 847968 BLAKE2B 704b955dba18b154d46ae4c741d36bccd54d9f34d61ca4519d8247f558e6e9a83309facc1f71745f2524f2d52d03a4ca4db69a1bd19933e4bd5393d366f0ab3d SHA512 6152af0cc312c1583daaea06f99347d57a43628a6243854885bd9e769f98c5e75b537882aa9e79d49e5a4a16dcbf85513c939d5dd6425fb6492ea08bc04f1342
|
||||
DIST range-v3-ca1388fb9da8e69314dda222dc7b139ca84e092f.tar.gz 585661 BLAKE2B 6955643b9d569b101079c41154cd293d12a0b197078cf03376abd4555f9ff64b7c4e755a583a517c82f64a590bdc38a6d332a43ccd42e636057917754c75138a SHA512 6a151236845d9758555be81640dba773abf90c2ee6410d3eadbdc7d993bbedcd359251c334a3fa20eb6148aa3d357e036ae5d94337a6837fd4ae09c3b842da9d
|
||||
DIST robin-map-d5683d9f1891e5b04e3e3b2192b5349dc8d814ea.tar.gz 70652 BLAKE2B 03ca6c6c333661ece0ac818d43eee37ead3e0a0acb71c45df201bff30715db89b8f2be3f5bac0991379327f2fac4273ba1bd3d6c4102e5a472a7c7567fae4651 SHA512 23fe18c7d2dda9bc4216201a7e5935c8dc9f51066173e95d514360e3310c994c4dc7786a33f43cb7d15dcceb913375a48b8c02529eacde58c0a80f0e91e9b94d
|
||||
DIST xxhash-bbb27a5efb85b92a0486cf361a8635715a53f6ba.tar.gz 1141344 BLAKE2B 74a71b61656fd6181506aea67c1f25d699f1d5eb29e643b3ff7ecd5b641ab7dc3e19dad5371c1e7867316261f797a8d699b3de9236c80fb536ee1d793454cfda SHA512 fc53b5461d5560a600c78145aa645cf20ec112216efefa98ae2c9e4f480ea3723930abacee825aadbdcd9b3712963d20da17ccc8f3ceb885c9c05647c9e817fc
|
||||
|
||||
155
app-emulation/fex-xtajit/fex-xtajit-2509.ebuild
Normal file
155
app-emulation/fex-xtajit/fex-xtajit-2509.ebuild
Normal file
@@ -0,0 +1,155 @@
|
||||
# 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="ce24593018ca5d5af7e5661ceda9744e02b59f8f"
|
||||
CPP_OPTPARSE_HASH="9f94388a339fcbb0bc95c17768eb786c85988f6e"
|
||||
ROBIN_MAP_HASH="d5683d9f1891e5b04e3e3b2192b5349dc8d814ea"
|
||||
FMT_HASH="20c8fdad0605a1627a3f6d15cad693a3fbe2ecbf"
|
||||
XXHASH_HASH="bbb27a5efb85b92a0486cf361a8635715a53f6ba"
|
||||
RANGE_V3_HASH="ca1388fb9da8e69314dda222dc7b139ca84e092f"
|
||||
|
||||
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/ericniebler/range-v3/archive/${RANGE_V3_HASH}.tar.gz -> range-v3-${RANGE_V3_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"
|
||||
IUSE="+wow64 +arm64ec"
|
||||
REQUIRED_USE="|| ( wow64 arm64ec )"
|
||||
|
||||
BDEPEND="
|
||||
arm64ec? ( dev-util/llvm-mingw64[arm64ec-pe(-)] )
|
||||
dev-build/cmake
|
||||
>=dev-util/llvm-mingw64-13.0.0
|
||||
llvm-core/clang
|
||||
llvm-core/llvm
|
||||
"
|
||||
|
||||
pkg_setup() {
|
||||
HOSTS=(
|
||||
$(usev wow64 aarch64-w64-mingw32)
|
||||
$(usev arm64ec arm64ec-w64-mingw32)
|
||||
)
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
local -A deps=(
|
||||
jemalloc "jemalloc-${JEMALLOC_HASH}"
|
||||
robin-map "robin-map-${ROBIN_MAP_HASH}"
|
||||
xxhash "xxHash-${XXHASH_HASH}"
|
||||
fmt "fmt-${FMT_HASH}"
|
||||
range-v3 "range-v3-${RANGE_V3_HASH}"
|
||||
)
|
||||
for dep in "${!deps[@]}"; do
|
||||
rmdir "${S}/External/${dep}" || die
|
||||
mv "${WORKDIR}/${deps[${dep}]}" "${S}/External/${dep}"
|
||||
done
|
||||
rmdir "${S}/Source/Common/cpp-optparse" || die
|
||||
mv "${WORKDIR}/cpp-optparse-${CPP_OPTPARSE_HASH}" "${S}/Source/Common/cpp-optparse" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for CHOST in ${HOSTS[@]}; do
|
||||
(
|
||||
setup_env
|
||||
per_host_src_configure
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
setup_env() {
|
||||
PATH="${BROOT}/usr/lib/llvm-mingw64/bin:${PATH}"
|
||||
CC=${CHOST}-clang
|
||||
CXX=${CHOST}-clang++
|
||||
LD=${CHOST}-clang
|
||||
AR=llvm-ar
|
||||
NM=llvm-nm
|
||||
RANLIB=llvm-ranlib
|
||||
STRIP=llvm-strip
|
||||
RC=${CHOST}-windres
|
||||
KERNEL=Winnt
|
||||
tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
|
||||
|
||||
strip-flags
|
||||
filter-lto
|
||||
filter-flags '-fuse-ld=*'
|
||||
strip-unsupported-flags
|
||||
}
|
||||
|
||||
per_host_src_configure() {
|
||||
mkdir "${WORKDIR}/${CHOST}-build" || die
|
||||
pushd "${WORKDIR}/${CHOST}-build" >/dev/null || die
|
||||
cmake -GNinja \
|
||||
-DCMAKE_C_COMPILER_WORKS=1 \
|
||||
-DCMAKE_CXX_COMPILER_WORKS=1 \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${S}/Data/CMake/toolchain_mingw.cmake" \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib/fex-xtajit \
|
||||
-DENABLE_LTO=False \
|
||||
-DMINGW_TRIPLE=${CHOST} \
|
||||
-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 \
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_range-v3=true \
|
||||
"${S}" || die
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for CHOST in ${HOSTS[@]}; do
|
||||
(
|
||||
setup_env
|
||||
per_host_src_compile
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
per_host_src_compile() {
|
||||
pushd "${WORKDIR}/${CHOST}-build" >/dev/null || die
|
||||
eninja
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
for CHOST in ${HOSTS[@]}; do
|
||||
(
|
||||
setup_env
|
||||
per_host_src_install
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
per_host_src_install() {
|
||||
pushd "${WORKDIR}/${CHOST}-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."
|
||||
}
|
||||
@@ -7,4 +7,8 @@
|
||||
<upstream>
|
||||
<remote-id type="github">FEX-Emu/FEX</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="arm64ec">Enable x86_64 emulation using arm64ec</flag>
|
||||
<flag name="wow64">Enable x86 (32-bit) emulation using wow64</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
Reference in New Issue
Block a user