summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/devtool/__init__.py')
-rw-r--r--scripts/lib/devtool/__init__.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py
index 8c385beb89..d646b0cf63 100644
--- a/scripts/lib/devtool/__init__.py
+++ b/scripts/lib/devtool/__init__.py
@@ -261,23 +261,28 @@ def get_bbclassextend_targets(recipefile, pn):
261 targets.append('%s-%s' % (pn, variant)) 261 targets.append('%s-%s' % (pn, variant))
262 return targets 262 return targets
263 263
264def ensure_npm(config, basepath, fixed_setup=False): 264def ensure_npm(config, basepath, fixed_setup=False, check_exists=True):
265 """ 265 """
266 Ensure that npm is available and either build it or show a 266 Ensure that npm is available and either build it or show a
267 reasonable error message 267 reasonable error message
268 """ 268 """
269 tinfoil = setup_tinfoil(config_only=True, basepath=basepath) 269 if check_exists:
270 try: 270 tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
271 nativepath = tinfoil.config_data.getVar('STAGING_BINDIR_NATIVE') 271 try:
272 finally: 272 rd = tinfoil.parse_recipe('nodejs-native')
273 tinfoil.shutdown() 273 nativepath = rd.getVar('STAGING_BINDIR_NATIVE')
274 finally:
275 tinfoil.shutdown()
276 npmpath = os.path.join(nativepath, 'npm')
277 build_npm = not os.path.exists(npmpath)
278 else:
279 build_npm = True
274 280
275 npmpath = os.path.join(nativepath, 'npm') 281 if build_npm:
276 if not os.path.exists(npmpath):
277 logger.info('Building nodejs-native') 282 logger.info('Building nodejs-native')
278 try: 283 try:
279 exec_build_env_command(config.init_path, basepath, 284 exec_build_env_command(config.init_path, basepath,
280 'bitbake -q nodejs-native', watch=True) 285 'bitbake -q nodejs-native -c addto_recipe_sysroot', watch=True)
281 except bb.process.ExecutionError as e: 286 except bb.process.ExecutionError as e:
282 if "Nothing PROVIDES 'nodejs-native'" in e.stdout: 287 if "Nothing PROVIDES 'nodejs-native'" in e.stdout:
283 if fixed_setup: 288 if fixed_setup:
@@ -287,5 +292,3 @@ def ensure_npm(config, basepath, fixed_setup=False):
287 raise DevtoolError(msg) 292 raise DevtoolError(msg)
288 else: 293 else:
289 raise 294 raise
290 if not os.path.exists(npmpath):
291 raise DevtoolError('Built nodejs-native but npm binary still could not be found at %s' % npmpath)