# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( {18..23} ) inherit cmake llvm-r2 # migcom includes Mach headers through Darling's SDK symlinks, which point into the xnu and # libpthread submodules, so build inside a minimal Darling tree. DARLING_SHA="60ba801decee7a00782f74f6be4c8ffb013f79ff" LIBPTHREAD_SHA="f07f265bfbcf071c1adfc808de971e053ea5edc5" SHA="0f300a7a04bb1174a3b7db58b57d738aadc14e13" XNU_SHA="fa29287aa2f0115271e091f1031f53c9e024005d" DESCRIPTION="Apple's Mach Interface Generator (MIG) as used to build Darling" HOMEPAGE="https://github.com/darlinghq/darling-bootstrap_cmds https://www.darlinghq.org/" SRC_URI="https://github.com/darlinghq/darling-bootstrap_cmds/archive/${SHA}.tar.gz -> darling-bootstrap_cmds-${SHA}.tar.gz https://github.com/darlinghq/darling/archive/${DARLING_SHA}.tar.gz -> darling-${DARLING_SHA}.tar.gz https://github.com/darlinghq/darling-libpthread/archive/${LIBPTHREAD_SHA}.tar.gz -> darling-libpthread-${LIBPTHREAD_SHA}.tar.gz https://github.com/darlinghq/darling-xnu/archive/${XNU_SHA}.tar.gz -> darling-xnu-${XNU_SHA}.tar.gz" S="${WORKDIR}/darling-${DARLING_SHA}/src/external/bootstrap_cmds" LICENSE="APSL-2" SLOT="0" KEYWORDS="~amd64" RDEPEND="llvm-core/clang" # shellcheck disable=SC2016 BDEPEND=" app-alternatives/lex app-alternatives/yacc $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}') " PATCHES=( "${FILESDIR}/${PN}-0001-Support-standalone-builds-and-installation-as-darlin.patch" ) src_unpack() { local top="${WORKDIR}/darling-${DARLING_SHA}" name sha unpack "darling-${DARLING_SHA}.tar.gz" for name in bootstrap_cmds libpthread xnu; do case "${name}" in bootstrap_cmds) sha="${SHA}" ;; libpthread) sha="${LIBPTHREAD_SHA}" ;; xnu) sha="${XNU_SHA}" ;; esac unpack "darling-${name}-${sha}.tar.gz" rmdir "${top}/src/external/${name}" || die mv "darling-${name}-${sha}" "${top}/src/external/${name}" || die done } src_configure() { # Apple's headers use clang-only syntax llvm_prepend_path "${LLVM_SLOT}" local -x CC="${CHOST}-clang" CXX="${CHOST}-clang++" local mycmakeargs=( -DDARLING_BASIC_HEADERS="${WORKDIR}/darling-${DARLING_SHA}/basic-headers" ) cmake_src_configure }