summaryrefslogtreecommitdiff
path: root/meta/classes
diff options
context:
space:
mode:
authorBrendan Le Foll <brendan.le.foll@intel.com>2016-02-25 15:06:57 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-28 11:32:33 +0000
commit4d2ad3e39242c947612023f4429bc8fb430551b5 (patch)
tree7c37dc4f3cbe1f87e62a8bee55b3e2964fcb8756 /meta/classes
parent500c432419739e2be247d6feea3f4d85eb7ddfd0 (diff)
downloadopenembedded-core-4d2ad3e39242c947612023f4429bc8fb430551b5.tar.gz
openembedded-core-4d2ad3e39242c947612023f4429bc8fb430551b5.tar.bz2
openembedded-core-4d2ad3e39242c947612023f4429bc8fb430551b5.zip
npm.bbclass: Add npm class to match fetcher
npm class supports the npm fetcher, helping doing the basic compile/install stages of an npm package Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/npm.bbclass25
1 files changed, 25 insertions, 0 deletions
diff --git a/meta/classes/npm.bbclass b/meta/classes/npm.bbclass
new file mode 100644
index 0000000000..be76056c55
--- /dev/null
+++ b/meta/classes/npm.bbclass
@@ -0,0 +1,25 @@
+DEPENDS_prepend = "nodejs-native "
+S = "${WORKDIR}/npmpkg"
+
+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 ${D}${libdir}/node_modules/${PN}/
+ cp -a ${S}/* ${D}${libdir}/node_modules/${PN}/ --no-preserve=ownership
+}
+
+FILES_${PN} += " \
+ ${libdir}/node_modules/${PN} \
+"
+
+EXPORT_FUNCTIONS do_compile do_install