diff options
Diffstat (limited to 'scripts/lib/devtool/__init__.py')
-rw-r--r-- | scripts/lib/devtool/__init__.py | 25 |
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 | ||
264 | def ensure_npm(config, basepath, fixed_setup=False): | 264 | def 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) | ||