aboutsummaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorArsenShnurkov <Arsen.Shnurkov@gmail.com>2016-10-01 07:33:43 +0300
committerArsenShnurkov <Arsen.Shnurkov@gmail.com>2016-10-01 07:33:43 +0300
commitcc0a2b66478e7fa894eb63abb35902036014012b (patch)
tree5cf032566edd4ffd099545d249bda5d5d1d64879 /eclass
parentdownloading (diff)
downloaddotnet-cc0a2b66478e7fa894eb63abb35902036014012b.tar.gz
dotnet-cc0a2b66478e7fa894eb63abb35902036014012b.tar.bz2
dotnet-cc0a2b66478e7fa894eb63abb35902036014012b.zip
multiple assembly names support added
Diffstat (limited to 'eclass')
-rw-r--r--eclass/gac.eclass27
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}