|  | DEPENDS_prepend = "nodejs-native " | 
|  | S = "${WORKDIR}/npmpkg" | 
|  |  | 
|  | NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}" | 
|  |  | 
|  | npm_do_compile() { | 
|  | # changing the home directory to the working directory, the .npmrc will | 
|  | # be created in this directory | 
|  | export HOME=${WORKDIR} | 
|  | npm config set dev false | 
|  | npm set cache ${WORKDIR}/npm_cache | 
|  | # clear cache before every build | 
|  | npm cache clear | 
|  | # Install pkg into ${S} without going to the registry | 
|  | npm --arch=${TARGET_ARCH} --production --no-registry install | 
|  | } | 
|  |  | 
|  | npm_do_install() { | 
|  | mkdir -p ${NPM_INSTALLDIR}/ | 
|  | cp -a ${S}/* ${NPM_INSTALLDIR}/ --no-preserve=ownership | 
|  | } | 
|  |  | 
|  | python populate_packages_prepend () { | 
|  | instdir = d.expand('${D}${libdir}/node_modules/${PN}') | 
|  | extrapackages = oe.package.npm_split_package_dirs(instdir) | 
|  | pkgnames = extrapackages.keys() | 
|  | d.prependVar('PACKAGES', '%s ' % ' '.join(pkgnames)) | 
|  | for pkgname in pkgnames: | 
|  | pkgrelpath, pdata = extrapackages[pkgname] | 
|  | pkgpath = '${libdir}/node_modules/${PN}/' + pkgrelpath | 
|  | # package names can't have underscores but npm packages sometimes use them | 
|  | oe_pkg_name = pkgname.replace('_', '-') | 
|  | expanded_pkgname = d.expand(oe_pkg_name) | 
|  | d.setVar('FILES_%s' % expanded_pkgname, pkgpath) | 
|  | if pdata: | 
|  | version = pdata.get('version', None) | 
|  | if version: | 
|  | d.setVar('PKGV_%s' % expanded_pkgname, version.encode("utf8")) | 
|  | description = pdata.get('description', None) | 
|  | if description: | 
|  | d.setVar('SUMMARY_%s' % expanded_pkgname, description.replace(u"\u2018", "'").replace(u"\u2019", "'").encode("utf8")) | 
|  | d.appendVar('RDEPENDS_%s' % d.getVar('PN', True), ' %s' % ' '.join(pkgnames).replace('_', '-')) | 
|  | } | 
|  |  | 
|  | FILES_${PN} += " \ | 
|  | ${libdir}/node_modules/${PN} \ | 
|  | " | 
|  |  | 
|  | EXPORT_FUNCTIONS do_compile do_install |