# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" RESTRICT="mirror" KEYWORDS="amd64 arm64" SLOT="$(ver_cut 1-2)" USE_DOTNET="net46" IUSE="+${USE_DOTNET} +symlink developer debug" inherit dotnet GITHUB_ACCOUNT="mono" GITHUB_PROJECTNAME="mono" # EGIT_COMMIT="1ed1688a543c0c03f8fc0cc8e6ca234a6bd45eb0" EGIT_COMMIT="0c979e6d769bda97bfba41c29324f727e72e27d8" SRC_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}/archive/${EGIT_COMMIT}.tar.gz -> ${GITHUB_PROJECTNAME}-${PV}.tar.gz" S="${WORKDIR}/${GITHUB_PROJECTNAME}-${EGIT_COMMIT}" HOMEPAGE="https://github.com/mono/mono" DESCRIPTION="Resource generator from mono" LICENSE="MIT" # https://github.com/mono/mono/blob/main/LICENSE COMMON_DEPEND="" RDEPEND="${COMMON_DEPEND}" DEPEND="${COMMON_DEPEND}" # PATCHES=( "assembly-info.patch" ) src_prepare() { eapply "${FILESDIR}/assembly-info.patch" sed -i 's/Consts.MonoVersion/"'${PV}'"/g' "${S}/mcs/tools/resgen/monoresgen.cs" || die mkdir -p "${S}/mcs/build/common/" || die touch "${S}/mcs/build/common/Consts.cs" || die eapply_user } function references () { echo -n \ $(reference_framework System.Core) \ $(reference_framework System.Drawing) \ $(reference_framework System.Xml) \ $(reference_framework System) } #resgen is used in initial msbuild compilation, so can't use .csproj, use direct build with ecsc. src_compile() { mkdir -p "$(bin_dir)" || die cd "${S}/mcs/tools/resgen" || die # https://stackoverflow.com/questions/30988586/creating-an-array-from-a-text-file-in-bash local SOURCES=() while IFS= read -r line || [[ "$line" ]]; do SOURCES+=("$line") done < resgen.exe.sources ecsc -noconfig $(references) /unsafe ${SOURCES[@]} $(output_exe resgen) } src_install() { local INSTALL_PATH="/usr/share/${PN}${APPENDIX}/" insinto ${INSTALL_PATH} doins "$(bin_dir)/resgen.exe" if use debug; then make_wrapper resgen-${SLOT} "/usr/bin/mono --debug ${INSTALL_PATH}/resgen.exe" else make_wrapper resgen-${SLOT} "/usr/bin/mono ${INSTALL_PATH}/resgen.exe" fi # local WRAPPER_PATH="${EPREFIX}/usr/bin" local WRAPPER_PATH="/usr/bin" if use symlink; then dosym ${WRAPPER_PATH}/resgen-${SLOT} /usr/bin/resgen || die fi }