mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
runqemu: Add multiconfig support
Users may want to run qemu against a specific multiconfig instead of the base configuration, so give them the ability to specify which config should be used with the MULTICONFIG environment variable. (From OE-Core rev: fda5d9b64fa310173ad949540c54fd693c4f7d3a) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4ceb3fcb4e
commit
714eb4532b
|
@ -135,6 +135,7 @@ class BaseConfig(object):
|
||||||
'DEPLOY_DIR_IMAGE',
|
'DEPLOY_DIR_IMAGE',
|
||||||
'OE_TMPDIR',
|
'OE_TMPDIR',
|
||||||
'OECORE_NATIVE_SYSROOT',
|
'OECORE_NATIVE_SYSROOT',
|
||||||
|
'MULTICONFIG',
|
||||||
)
|
)
|
||||||
|
|
||||||
self.qemu_opt = ''
|
self.qemu_opt = ''
|
||||||
|
@ -401,9 +402,7 @@ class BaseConfig(object):
|
||||||
self.set("MACHINE", arg)
|
self.set("MACHINE", arg)
|
||||||
return
|
return
|
||||||
|
|
||||||
cmd = 'MACHINE=%s bitbake -e' % arg
|
self.bitbake_e = self.run_bitbake_env(arg)
|
||||||
logger.info('Running %s...' % cmd)
|
|
||||||
self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
|
|
||||||
# bitbake -e doesn't report invalid MACHINE as an error, so
|
# bitbake -e doesn't report invalid MACHINE as an error, so
|
||||||
# let's check DEPLOY_DIR_IMAGE to make sure that it is a valid
|
# let's check DEPLOY_DIR_IMAGE to make sure that it is a valid
|
||||||
# MACHINE.
|
# MACHINE.
|
||||||
|
@ -1410,10 +1409,7 @@ class BaseConfig(object):
|
||||||
|
|
||||||
self.cleaned = True
|
self.cleaned = True
|
||||||
|
|
||||||
def load_bitbake_env(self, mach=None):
|
def run_bitbake_env(self, mach=None):
|
||||||
if self.bitbake_e:
|
|
||||||
return
|
|
||||||
|
|
||||||
bitbake = shutil.which('bitbake')
|
bitbake = shutil.which('bitbake')
|
||||||
if not bitbake:
|
if not bitbake:
|
||||||
return
|
return
|
||||||
|
@ -1421,14 +1417,24 @@ class BaseConfig(object):
|
||||||
if not mach:
|
if not mach:
|
||||||
mach = self.get('MACHINE')
|
mach = self.get('MACHINE')
|
||||||
|
|
||||||
|
multiconfig = self.get('MULTICONFIG')
|
||||||
|
if multiconfig:
|
||||||
|
multiconfig = "mc:%s" % multiconfig
|
||||||
|
|
||||||
if mach:
|
if mach:
|
||||||
cmd = 'MACHINE=%s bitbake -e' % mach
|
cmd = 'MACHINE=%s bitbake -e %s' % (mach, multiconfig)
|
||||||
else:
|
else:
|
||||||
cmd = 'bitbake -e'
|
cmd = 'bitbake -e %s' % multiconfig
|
||||||
|
|
||||||
logger.info('Running %s...' % cmd)
|
logger.info('Running %s...' % cmd)
|
||||||
|
return subprocess.check_output(cmd, shell=True).decode('utf-8')
|
||||||
|
|
||||||
|
def load_bitbake_env(self, mach=None):
|
||||||
|
if self.bitbake_e:
|
||||||
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
|
self.bitbake_e = self.run_bitbake_env(mach=mach)
|
||||||
except subprocess.CalledProcessError as err:
|
except subprocess.CalledProcessError as err:
|
||||||
self.bitbake_e = ''
|
self.bitbake_e = ''
|
||||||
logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
|
logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
|
||||||
|
@ -1443,7 +1449,13 @@ class BaseConfig(object):
|
||||||
if result and os.path.exists(result):
|
if result and os.path.exists(result):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
cmd = ('bitbake', 'qemu-helper-native', '-e')
|
cmd = ['bitbake', '-e']
|
||||||
|
multiconfig = self.get('MULTICONFIG')
|
||||||
|
if multiconfig:
|
||||||
|
cmd.append('mc:%s:qemu-helper-native' % multiconfig)
|
||||||
|
else:
|
||||||
|
cmd.append('qemu-helper-native')
|
||||||
|
|
||||||
logger.info('Running %s...' % str(cmd))
|
logger.info('Running %s...' % str(cmd))
|
||||||
out = subprocess.check_output(cmd).decode('utf-8')
|
out = subprocess.check_output(cmd).decode('utf-8')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user