# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DESCRIPTION="Wrapper script for gdc that emulates the dmd command" HOMEPAGE="https://www.gdcproject.org/" RELEASE="0.1.0" SRC_URI="https://codeload.github.com/D-Programming-GDC/gdmd/tar.gz/script-${RELEASE} -> gdmd-${RELEASE}.tar.gz" S="${WORKDIR}/gdmd-script-${RELEASE}" LICENSE="GPL-3+" SLOT="${PV}" KEYWORDS="~amd64 ~arm64 ~x86" RESTRICT="test" # no tests RDEPEND="sys-devel/gcc:${PV}[d]" PATCHES="${FILESDIR}/${PN}-no-dmd-conf.patch" src_compile() { : } src_install() { local binPath="/usr/${CHOST}/gcc-bin/${PV}" exeinto "${binPath}" newexe dmd-script "${CHOST}-gdmd" dosym "${CHOST}-gdmd" "${binPath}/gdmd" } pkg_postinst() { maybe_update_gcc_config } # We can't really call gcc-config in postrm since it won't know which # symlinks under /usr/bin were left by us. If it turns out to be a # problem we could try to remove the symlink manually. maybe_update_gcc_config() { # Call gcc-config if the current configuration if for the same slot # we are installing to. This is needed to make gdmd available in # $PATH. local CTARGET=${CTARGET:-${CHOST}} # Logic taken from toolchain.eclass and simplified a little local curr_config curr_config=$(gcc-config -c ${CTARGET} 2>&1) || return 0 local curr_config_ver=$(gcc-config -S ${curr_config} | awk '{print $2}') local curr_specs=$(gcc-config -S ${curr_config} | awk '{print $3}') if [[ ${curr_config_ver} == ${SLOT} && ! ${curr_specs} ]]; then # We should call gcc-config to make sure the addition of gdmd is # propagated in $PATH. Don't do anything if not on a traditional # layout, the risk of breaking something outweights having the # script in $PATH. gcc-config "${CTARGET}-${SLOT}" fi }