# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 IUSE="debug developer pkg-config" # function elib is used for .dll install # it in turn calls function einstall_pc_file if USE="pkg-config" is specified inherit mono-pkg-config GITHUB_ACCOUNT=zzzprojects GITHUB_PROJECTNAME=html-agility-pack KEYWORDS="amd64 arm64" if [[ ${PV} == 1.11.34 ]] ; then SLOT=0 EGIT_COMMIT=f5f4776fa9d444af2a11f0f18cfb1c2a2717d97c else KEYWORDS="~amd64 ~arm64" if [[ ${PV} == 1.11.34_p6 ]] ; then SLOT=6 EGIT_COMMIT=bd8bec435e2436a6be92f47e8c3c727b602ba52e else if [[ ${PV} == 9999 ]] ; then SLOT=9999 EGIT_REPO_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}.git" # EGIT_REPO_URI="git://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}.git" # EGIT_REPO_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}" KEYWORDS="~amd64 ~arm64" else equwarn "Ebuild Version $${PV}=""${PV}"" should be reviewed" fi fi fi einfo "\${SLOT}: ${SLOT}" if [[ ${PV} == 9999 ]] ; then inherit git-r3 else RESTRICT=mirror if [ -z ${EGIT_COMMIT+x} ] ; then # try extract by tag SRC_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}/archive/v${PV}.tar.gz -> ${CATEGORY}-${PN}-${PV}.tar.gz" S="${WORKDIR}/${PN}-v${PV}" else # extract by SHA1 SRC_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}/archive/${EGIT_COMMIT}.tar.gz -> ${CATEGORY}-${GITHUB_PROJECTNAME}-${GITHUB_ACCOUNT}-${PV}.tar.gz" # vcs-snapshot.eclass will strip that first dir level and re-add /${P} , so default S works # eg instead of unpacking to $WORKDIR/foo-dc8s9ee1/ , it will unpack to $WORKDIR/foo-1.2.3/ as expected # inherit vcs-snapshot S="${WORKDIR}/${PN}-${EGIT_COMMIT}" fi fi HOMEPAGE="https://html-agility-pack.net/" DESCRIPTION="Html Agility Pack is a C# parser for HTML, supports plain XPATH and XSLT" LICENSE="MIT" COMMON_DEPEND=">=dev-lang/mono-5.2.0.196" RDEPEND="${COMMON_DEPEND}" DEPEND="${COMMON_DEPEND}" src_unpack() { default if [[ ${PV} == 9999 ]] ; then git-r3_fetch git-r3_checkout fi if [ -d "${S}" ] ; then einfo "Directory ${S} exists" else einfo "Directory ""${S}"" doesn't exist" fi } src_prepare() { eapply_user } inherit msbuild src_compile() { emsbuild "src/HtmlAgilityPack.Net45/HtmlAgilityPack.Net45.csproj" } # https://stackoverflow.com/a/21941473/4158543 anycpu_outputnames() { declare -a ANYCPU_OUTPUTNAMES ANYCPU_OUTPUTNAMES+=("HtmlAgilityPack") echo ${ANYCPU_OUTPUTNAMES[@]} } anycpu_outputpaths() { declare -a ANYCPU_OUTPUTPATHS ANYCPU_OUTPUTPATHS+=("${S}/src/HtmlAgilityPack.Net45/bin/$(usedebug_tostring)/HtmlAgilityPack.dll") echo ${ANYCPU_OUTPUTPATHS[@]} } src_install() { local INSTALL_DIR="$(anycpu_current_assembly_dir)" insinto "${INSTALL_DIR}" einfo "=== making .pc file for all libraries at once ===" einfo "$(anycpu_current_assembly_dir)" $(anycpu_outputpaths) elib2 "$(anycpu_current_assembly_dir)" $(anycpu_outputpaths) einfo "=== symlink each output separately ===" for OUTPUT_NAME in $(anycpu_outputnames) do einfo "Symlinking ${OUTPUT_NAME}" dosym "${INSTALL_DIR}/${OUTPUT_NAME}.dll" "$(anycpu_current_symlink_dir)/${OUTPUT_NAME}.dll" done }