commit:     67178f69c1dcd3bb776c4ba9ac5574837f5622be
Author:     Pavel Sobolev <contact <AT> paveloom <DOT> dev>
AuthorDate: Thu Jul 10 19:08:47 2025 +0000
Commit:     Pavel Sobolev <contact <AT> paveloom <DOT> dev>
CommitDate: Sat Jul 19 18:14:39 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=67178f69

dev-libs/dynarmic: new package, add 6.7.0

Signed-off-by: Pavel Sobolev <contact <AT> paveloom.dev>

 dev-libs/dynarmic/Manifest                         |  1 +
 dev-libs/dynarmic/dynarmic-6.7.0.ebuild            | 61 ++++++++++++++++++++++
 ...ystem-library-rather-than-a-cmake-package.patch | 19 +++++++
 ...ynarmic-6.7.0-relax-the-dependency-on-mcl.patch | 16 ++++++
 dev-libs/dynarmic/metadata.xml                     | 11 ++++
 5 files changed, 108 insertions(+)

diff --git a/dev-libs/dynarmic/Manifest b/dev-libs/dynarmic/Manifest
new file mode 100644
index 0000000000..7d4de84e4a
--- /dev/null
+++ b/dev-libs/dynarmic/Manifest
@@ -0,0 +1 @@
+DIST dynarmic-6.7.0.tar.gz 3748380 BLAKE2B 
9f25e019f2a80486f11ebdb9872bea5345877074150024baadb959ae038b92bb550e0674f27f14c89cff2cab49ddb5d826c267303093934ae9db54791ba69dc8
 SHA512 
08b3c8783fd719651797566cbf3992c01fac8cce4dfadcdf22017706e926be2d9d6fcbabf20af8a61e3d8447ca477312dd89e7eec6c58a0965e8e1b14813d8c2

diff --git a/dev-libs/dynarmic/dynarmic-6.7.0.ebuild 
b/dev-libs/dynarmic/dynarmic-6.7.0.ebuild
new file mode 100644
index 0000000000..119812bdd8
--- /dev/null
+++ b/dev-libs/dynarmic/dynarmic-6.7.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+EGIT_COMMIT="fa6cc2e4b2a2954f2298b6548174479c5b106c2a"
+
+DESCRIPTION="An ARM dynamic recompiler"
+# This is a copy of the now-deleted repository `merryhime/dynarmic`
+HOMEPAGE="https://github.com/lioncash/dynarmic";
+SRC_URI="https://github.com/lioncash/dynarmic/archive/${EGIT_COMMIT}.tar.gz -> 
${P}.tar.gz"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+LICENSE="0BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-cpp/robin-map
+       dev-libs/boost:=
+       dev-libs/libfmt:=
+       dev-libs/mcl
+       amd64? ( dev-libs/zydis )
+"
+DEPEND="
+       ${RDEPEND}
+       amd64? ( >=dev-libs/xbyak-7.25 )
+       arm64? ( dev-libs/oaknut )
+"
+BDEPEND="
+       test? (
+               dev-cpp/catch
+               dev-libs/oaknut
+       )
+"
+
+PATCHES=(
+       
"${FILESDIR}/${PN}-6.7.0-add-xbyak-as-a-system-library-rather-than-a-cmake-package.patch"
+       "${FILESDIR}/${PN}-6.7.0-relax-the-dependency-on-mcl.patch"
+)
+
+src_prepare() {
+       find externals -mindepth 1 -not -path "externals/CMakeLists.txt" -delete
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DDYNARMIC_USE_PRECOMPILED_HEADERS=no
+               -DDYNARMIC_TESTS=$(usex test)
+               -Wno-dev
+       )
+
+       cmake_src_configure
+}

diff --git 
a/dev-libs/dynarmic/files/dynarmic-6.7.0-add-xbyak-as-a-system-library-rather-than-a-cmake-package.patch
 
b/dev-libs/dynarmic/files/dynarmic-6.7.0-add-xbyak-as-a-system-library-rather-than-a-cmake-package.patch
new file mode 100644
index 0000000000..41cb32ad5f
--- /dev/null
+++ 
b/dev-libs/dynarmic/files/dynarmic-6.7.0-add-xbyak-as-a-system-library-rather-than-a-cmake-package.patch
@@ -0,0 +1,19 @@
+From: Pavel Sobolev <[email protected]>
+Subject: [PATCH] Add `xbyak` as a system library rather than a CMake package.
+
+Signed-off-by: Pavel Sobolev <[email protected]>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,7 +149,11 @@ if ("arm64" IN_LIST ARCHITECTURE OR DYNARMIC_TESTS)
+ endif()
+ 
+ if ("x86_64" IN_LIST ARCHITECTURE)
+-    find_package(xbyak 7 CONFIG)
++    add_library(xbyak INTERFACE)
++    add_library(xbyak::xbyak ALIAS xbyak)
++    target_compile_options(xbyak INTERFACE "-fno-operator-names")
++    target_compile_definitions(xbyak INTERFACE 
XBYAK_STRICT_CHECK_MEM_REG_SIZE=0)
++
+     find_package(Zydis 4 CONFIG)
+ endif()

diff --git 
a/dev-libs/dynarmic/files/dynarmic-6.7.0-relax-the-dependency-on-mcl.patch 
b/dev-libs/dynarmic/files/dynarmic-6.7.0-relax-the-dependency-on-mcl.patch
new file mode 100644
index 0000000000..f1b268ca96
--- /dev/null
+++ b/dev-libs/dynarmic/files/dynarmic-6.7.0-relax-the-dependency-on-mcl.patch
@@ -0,0 +1,16 @@
+From: Pavel Sobolev <[email protected]>
+Subject: [PATCH] Relax the dependency on `mcl`.
+
+Signed-off-by: Pavel Sobolev <[email protected]>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -141,7 +141,7 @@ endif()
+ 
+ find_package(Boost 1.57 REQUIRED)
+ find_package(fmt 9 CONFIG)
+-find_package(mcl 0.1.12 EXACT CONFIG)
++find_package(mcl 0.1.12 CONFIG)
+ find_package(tsl-robin-map CONFIG)
+ 
+ if ("arm64" IN_LIST ARCHITECTURE OR DYNARMIC_TESTS)

diff --git a/dev-libs/dynarmic/metadata.xml b/dev-libs/dynarmic/metadata.xml
new file mode 100644
index 0000000000..707ca157e3
--- /dev/null
+++ b/dev-libs/dynarmic/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>[email protected]</email>
+    <name>Pavel Sobolev</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">lioncash/dynarmic</remote-id>
+  </upstream>
+</pkgmetadata>

Reply via email to