summaryrefslogtreecommitdiffstats
path: root/meta/classes/npm.bbclass
diff options
context:
space:
mode:
authorBrendan Le Foll <brendan.le.foll@intel.com>2016-05-24 12:12:16 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-30 15:58:10 +0100
commit899358a586f03daee8568c5d6906a5d992859264 (patch)
tree1f7e851667e9f21321d10347be9c56e26c7b43bf /meta/classes/npm.bbclass
parent7fed397ed09be02422198cf23e61a1006aa0db59 (diff)
downloadpoky-899358a586f03daee8568c5d6906a5d992859264.tar.gz
npm: add target_arch flag to npm
npm takes a target_arch flag which needs to be set to do some gyp compilations correctly. It also doesn't use the same mapping as OE for target arch so a small function is required to make the mapping work. Function is taken from meta-nodejs (From OE-Core rev: f402225311e4bbb62ba9781ab274420abaac0fb4) 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>
Diffstat (limited to 'meta/classes/npm.bbclass')
-rw-r--r--meta/classes/npm.bbclass13
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/classes/npm.bbclass b/meta/classes/npm.bbclass
index 9843e87350..d0d3d8fa03 100644
--- a/meta/classes/npm.bbclass
+++ b/meta/classes/npm.bbclass
@@ -3,6 +3,17 @@ S = "${WORKDIR}/npmpkg"
3 3
4NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}" 4NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}"
5 5
6# function maps arch names to npm arch names
7def npm_oe_arch_map(target_arch, d):
8 import re
9 if re.match('p(pc|owerpc)(|64)', target_arch): return 'ppc'
10 elif re.match('i.86$', target_arch): return 'ia32'
11 elif re.match('x86_64$', target_arch): return 'x64'
12 elif re.match('arm64$', target_arch): return 'arm'
13 return target_arch
14
15NPM_ARCH ?= "${@npm_oe_arch_map(d.getVar('TARGET_ARCH', True), d)}"
16
6npm_do_compile() { 17npm_do_compile() {
7 # changing the home directory to the working directory, the .npmrc will 18 # changing the home directory to the working directory, the .npmrc will
8 # be created in this directory 19 # be created in this directory
@@ -12,7 +23,7 @@ npm_do_compile() {
12 # clear cache before every build 23 # clear cache before every build
13 npm cache clear 24 npm cache clear
14 # Install pkg into ${S} without going to the registry 25 # Install pkg into ${S} without going to the registry
15 npm --arch=${TARGET_ARCH} --production --no-registry install 26 npm --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry install
16} 27}
17 28
18npm_do_install() { 29npm_do_install() {