Update drivers
[vuplus_openembedded] / classes / mono.bbclass
index dcf5f72..cf8dd15 100644 (file)
@@ -1,61 +1,3 @@
-def mono_get_file_table(packageversion, d):
-       # The packageversion is currently ignored, but might be used in the future
-       # if more than one mono version is available and different versions
-       # need to use different tables
-
-       import bb, sys, os, glob, commands
-       curdir = os.path.dirname( bb.data.getVar('FILE', d, 1)  )
-       if curdir not in sys.path: sys.path.append( curdir )
-       from mono_files import debian_mono_file_table
-       
-       # mono-jay is not being built (for all platforms at least)
-       IGNORE = ("mono-jay", )
-       file_table = [
-           # Standard package
-           {"name": "mono-doc"},
-           
-           # Virtual packages
-           {"name": "mono"},
-           {"name": "mono-runtime"},
-           
-           # Not provided by Debian:
-           {"name": "libnunit2.2-cil",
-            "patterns": [
-              "/usr/lib/mono/gac/nunit.*/2.2.*",
-              "/usr/lib/mono/1.0/nunit.*.dll",
-              "/usr/lib/pkgconfig/mono-nunit.pc",
-             ],
-             "assemblies": [
-              ("nunit.core", "2.2.0.0"),
-              ("nunit.framework", "2.2.0.0"),
-              ("nunit.util", "2.2.0.0"),
-              ("nunit.mocks", "2.2.8.0"),
-             ],
-           },
-           {"name": "libmono-cecil0.5-cil",
-            "patterns": [
-             "/usr/lib/mono/gac/Mono.Cecil/0.5.*",
-            ],
-            "assemblies": [
-             ("Mono.Cecil", "0.5.*"),
-            ],
-           },
-           {"name": "libmono-db2-1.0-cil",
-            "patterns": [
-             "/usr/lib/mono/gac/IBM.Data.DB2/1.0*",
-             "/usr/lib/mono/1.0/IBM.Data.DB2.dll",
-            ],
-            "assemblies": [
-             ("IBM.Data.DB2", "1.0*"),
-            ],
-           },
-       ] + debian_mono_file_table
-       
-       file_table = [e for e in file_table
-               if not (e.has_key("name") and e["name"] in IGNORE)]
-       
-       return file_table
-
 def mono_find_provides_and_requires(files, d):
        provides = []
        requires = []
@@ -110,6 +52,8 @@ def mono_find_provides_and_requires(files, d):
        requires = [e for e in requires if not e in provides]
        return provides, requires
 
+CLILIBSDIR = "${STAGING_DIR_HOST}/clilibs"
+
 python mono_do_clilibs() {
        import bb, os, re, os.path
 
@@ -128,14 +72,9 @@ python mono_do_clilibs() {
                bb.error("WORKDIR not defined")
                return
 
-       staging = bb.data.getVar('STAGING_DIR', d, 1)
-       if not staging:
-               bb.error("STAGING_DIR not defined")
-               return
-
        pkgdest = bb.data.getVar('PKGDEST', d, 1)
 
-       clilibs_dir = os.path.join(staging, "clilibs")
+       clilibs_dir = bb.data.getVar('CLILIBSDIR', d, 1)
        bb.mkdirhier(clilibs_dir)
 
        provides, requires = {}, {}
@@ -186,7 +125,7 @@ python mono_do_clilibs() {
                                if not dep_pkg in deps:
                                        deps.append(dep_pkg)
                        else:
-                               bb.note("Couldn't find CLI library provider for %s" % n)
+                               bb.note("Couldn't find CLI library provider for %s" % (n,))
 
                deps_file = os.path.join(pkgdest, pkg + ".clilibdeps")
                if os.path.exists(deps_file):
@@ -198,7 +137,25 @@ python mono_do_clilibs() {
                        fd.close()
 }
 
-python() {
+do_mono_stage() {
+        if [ "${INHIBIT_MONO_STAGE}" = "1" ]
+        then
+                return
+        fi
+       
+       for package in ${PACKAGES}; do
+               if [ -d  "${PKGDEST}/${package}/${libdir}" ]; then
+                       cd "${PKGDEST}/${package}/${libdir}"
+                       for file in `find . -iname "*.dll"`; do
+                               cp --parent -fpPR "${file}" "${STAGING_LIBDIR}/"
+                       done
+               fi
+       done
+}
+addtask mono_stage after do_package before do_populate_staging
+
+def mono_after_parse(d):
+       import bb
        # Insert mono_do_clilibs into PACKAGEFUNCS
        # Needs to be called after populate_packages, but before read_shlibdeps
        PACKAGEFUNCS = bb.data.getVar("PACKAGEFUNCS", d, 1)
@@ -211,4 +168,7 @@ python() {
                        i = PACKAGEFUNCS.index("populate_packages")
                        PACKAGEFUNCS.insert(i+1, "mono_do_clilibs")
                bb.data.setVar("PACKAGEFUNCS", " ".join(PACKAGEFUNCS), d)
+
+python () {
+    mono_after_parse(d)
 }