diff options
author | 2016-10-01 07:33:43 +0300 | |
---|---|---|
committer | 2016-10-01 07:33:43 +0300 | |
commit | cc0a2b66478e7fa894eb63abb35902036014012b (patch) | |
tree | 5cf032566edd4ffd099545d249bda5d5d1d64879 /eclass | |
parent | downloading (diff) | |
download | dotnet-cc0a2b66478e7fa894eb63abb35902036014012b.tar.gz dotnet-cc0a2b66478e7fa894eb63abb35902036014012b.tar.bz2 dotnet-cc0a2b66478e7fa894eb63abb35902036014012b.zip |
multiple assembly names support added
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/gac.eclass | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/eclass/gac.eclass b/eclass/gac.eclass index 0c47445..2be4356 100644 --- a/eclass/gac.eclass +++ b/eclass/gac.eclass @@ -60,23 +60,42 @@ egacdel() { fi } +# http://www.gossamer-threads.com/lists/gentoo/dev/263462 +# pkg config files should always come from upstream +# but what if they are not? +# you can fork, or you can use a configuration system that upstream actually supports. +# both are more difficult than creating .pc in ebuilds. Forks requires maintenance, and +# second one requires rewriting the IDE (disrespecting the decision of IDE's authors who decide to use .pc-files) +# So, "keep fighting the good fight, don't stop believing, and let the haters hate" (q) desultory from #gentoo-dev-help @ freenode + # @FUNCTION: einstall_pc_file # @DESCRIPTION: installs .pc file # The file format contains predefined metadata keywords and freeform variables (like ${prefix} and ${exec_prefix}) # $1 = ${PN} # $2 = ${PV} -# $3 = myassembly.dll # should not contain path, it is calculated magically, see DLL_FILENAME variable +# $3 = myassembly1 # should not contain path, shouldn't contain .dll extension +# $4 = myassembly2 +# $N = myassemblyN-2 # see DLL_REFERENCES einstall_pc_file() { if use pkg-config; then local PC_NAME="$1" local PC_VERSION="$2" - local DLL_NAME="$3" + + shift 2 + if [ "$#" == "0" ]; then + die "no assembly names given" + fi + local DLL_REFERENCES="" + while (( "$#" )); do + DLL_REFERENCES+=" -r:\${libdir}/mono/${PC_NAME}/${1}.dll" + shift + done + local PC_FILENAME="${PC_NAME}-${PC_VERSION}" local PC_DIRECTORY="/usr/$(get_libdir)/pkgconfig" #local PC_DIRECTORY_DELTA="${CATEGORY}/${PN}" local PC_DIRECTORY_VER="${PC_DIRECTORY}/${PC_DIRECTORY_DELTA}" - local DLL_FILENAME="\${libdir}/mono/${PC_NAME}/${DLL_NAME}" dodir "${PC_DIRECTORY}" dodir "${PC_DIRECTORY_VER}" @@ -97,7 +116,7 @@ einstall_pc_file() -e "s:@Name@:${CATEGORY}/${PN}:" \ -e "s:@DESCRIPTION@:${DESCRIPTION}:" \ -e "s:@LIBDIR@:$(get_libdir):" \ - -e "s*@LIBS@*-r:${DLL_FILENAME}*" \ + -e "s*@LIBS@*${DLL_REFERENCES}*" \ <<-EOF >"${D}/${PC_DIRECTORY_VER}/${PC_FILENAME}.pc" || die prefix=\${pcfiledir}/../.. exec_prefix=\${prefix} |