config: Implemented multi-target support
With this patch support for building multiple targets in parallel with bitbake is now supported. Changes: - Its now possible to state a list of targets under the target key in the configuration file. Example: target: - product-image - product-update-image - Its now possible to define multiple targets in the kas command line. Example: $ kas build --target product-image --target product-update-image \ kas.yml - Its now possible to define multiple targets via the environment: Example: $ export KAS_TARGET="product-image product-update-image" $ kas build kas.yml Signed-off-by: Claudius Heine <ch@denx.de>
This commit is contained in:
parent
f7d2e5ae20
commit
ab8e4cd375
@ -286,9 +286,11 @@ Configuration reference
|
|||||||
``local.conf``. Can be overwritten by the ``KAS_DISTRO`` environment
|
``local.conf``. Can be overwritten by the ``KAS_DISTRO`` environment
|
||||||
variable and defaults to ``poky``.
|
variable and defaults to ``poky``.
|
||||||
|
|
||||||
* ``target``: string [optional]
|
* ``target``: string [optional] or list [optional]
|
||||||
Contains the target to build by bitbake. Can be overwritten by the
|
Contains the target or a list of targets to build by bitbake. Can be
|
||||||
``KAS_TARGET`` environment variable and defaults to ``core-image-minimal``.
|
overwritten by the ``KAS_TARGET`` environment variable and defaults to
|
||||||
|
``core-image-minimal``. Space is used as a delimiter if multiple targets
|
||||||
|
should be specified via the environment variable.
|
||||||
|
|
||||||
* ``task``: string [optional]
|
* ``task``: string [optional]
|
||||||
Contains the task to build by bitbake. Can be overwritten by the
|
Contains the task to build by bitbake. Can be overwritten by the
|
||||||
|
@ -26,5 +26,5 @@ __license__ = 'MIT'
|
|||||||
__copyright__ = 'Copyright (c) Siemens AG, 2017'
|
__copyright__ = 'Copyright (c) Siemens AG, 2017'
|
||||||
|
|
||||||
__version__ = '0.13.0'
|
__version__ = '0.13.0'
|
||||||
__file_version__ = 3
|
__file_version__ = 4
|
||||||
__compatible_file_version__ = 1
|
__compatible_file_version__ = 1
|
||||||
|
@ -55,6 +55,7 @@ class Build:
|
|||||||
bld_psr.add_argument('config',
|
bld_psr.add_argument('config',
|
||||||
help='Config file')
|
help='Config file')
|
||||||
bld_psr.add_argument('--target',
|
bld_psr.add_argument('--target',
|
||||||
|
action='append',
|
||||||
help='Select target to build')
|
help='Select target to build')
|
||||||
bld_psr.add_argument('--task',
|
bld_psr.add_argument('--task',
|
||||||
help='Select which task should be executed')
|
help='Select which task should be executed')
|
||||||
@ -118,6 +119,6 @@ class BuildCommand(Command):
|
|||||||
"""
|
"""
|
||||||
# Start bitbake build of image
|
# Start bitbake build of image
|
||||||
bitbake = find_program(config.environ['PATH'], 'bitbake')
|
bitbake = find_program(config.environ['PATH'], 'bitbake')
|
||||||
run_cmd([bitbake, '-k', config.get_bitbake_target(),
|
run_cmd([bitbake, '-k', '-c', config.get_bitbake_task()] +
|
||||||
'-c', config.get_bitbake_task()],
|
config.get_bitbake_targets(),
|
||||||
env=config.environ, cwd=config.build_dir)
|
env=config.environ, cwd=config.build_dir)
|
||||||
|
@ -209,13 +209,19 @@ class Config:
|
|||||||
repo_dict[repo] = rep
|
repo_dict[repo] = rep
|
||||||
return repo_dict
|
return repo_dict
|
||||||
|
|
||||||
def get_bitbake_target(self):
|
def get_bitbake_targets(self):
|
||||||
"""
|
"""
|
||||||
Return the bitbake target
|
Returns a list of bitbake targets
|
||||||
"""
|
"""
|
||||||
return os.environ.get('KAS_TARGET',
|
environ_targets = [i
|
||||||
self._config.get('target',
|
for i in os.environ.get('KAS_TARGET', '').split()
|
||||||
'core-image-minimal'))
|
if i]
|
||||||
|
if environ_targets:
|
||||||
|
return environ_targets
|
||||||
|
target = self._config.get('target', 'core-image-minimal')
|
||||||
|
if isinstance(target, str):
|
||||||
|
return [target]
|
||||||
|
return target
|
||||||
|
|
||||||
def get_bitbake_task(self):
|
def get_bitbake_task(self):
|
||||||
"""
|
"""
|
||||||
|
@ -52,6 +52,7 @@ class Shell:
|
|||||||
sh_prs.add_argument('config',
|
sh_prs.add_argument('config',
|
||||||
help='Config file')
|
help='Config file')
|
||||||
sh_prs.add_argument('--target',
|
sh_prs.add_argument('--target',
|
||||||
|
action='append',
|
||||||
help='Select target to build',
|
help='Select target to build',
|
||||||
default='core-image-minimal')
|
default='core-image-minimal')
|
||||||
sh_prs.add_argument('--skip',
|
sh_prs.add_argument('--skip',
|
||||||
|
Loading…
Reference in New Issue
Block a user