Files
poky/meta/classes/npm.bbclass
Brendan Le Foll 69e20cade6 npm.bbclass: Stop packagenames containing underscores from being generated
Package names cannot contain underscores yet some npm modules use them as part
of the name, replace them with hyphens in the package name.

(From OE-Core rev: fea932c79c8201e3e7649f4443874ea540e33461)

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-14 10:58:33 +01:00

50 lines
1.8 KiB
Plaintext

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