]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
devtool: build: Also run deploy for devtool build if applicable
authorJaewon Lee <jaewon.lee@xilinx.com>
Thu, 13 Jun 2019 23:29:48 +0000 (16:29 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 21 Aug 2019 20:52:59 +0000 (21:52 +0100)
Right now `devtool build` runs populate_sysroot and packagedata tasks.
Adding deploy to this list, if the recipe has the deploy task, so that
the newly built artifacts are available in the deploy directory.
Applicable only for packages with deploy task, such as kernel.

[YOCTO#13382]

(From OE-Core rev: b38a1328f0c7bc4b4102a05daee4058fd3214489)

Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/lib/devtool/build.py

index 7543398d96f2208d6c6addf136ebe4acf46246d7..935ffab46c5ec86d7b3f7b062cc7dea8e3d642ea 100644 (file)
@@ -11,7 +11,8 @@ import bb
 import logging
 import argparse
 import tempfile
-from devtool import exec_build_env_command, check_workspace_recipe, DevtoolError
+from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, DevtoolError
+from devtool import parse_recipe
 
 logger = logging.getLogger('devtool')
 
@@ -43,12 +44,22 @@ def _get_build_tasks(config):
 def build(args, config, basepath, workspace):
     """Entry point for the devtool 'build' subcommand"""
     workspacepn = check_workspace_recipe(workspace, args.recipename, bbclassextend=True)
+    tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
+    try:
+        rd = parse_recipe(config, tinfoil, args.recipename, appends=True, filter_workspace=False)
+        if not rd:
+            return 1
+        deploytask = 'do_deploy' in rd.getVar('__BBTASKS')
+    finally:
+        tinfoil.shutdown()
 
     if args.clean:
         # use clean instead of cleansstate to avoid messing things up in eSDK
         build_tasks = ['do_clean']
     else:
         build_tasks = _get_build_tasks(config)
+        if deploytask:
+            build_tasks.append('do_deploy')
 
     bbappend = workspace[workspacepn]['bbappend']
     if args.disable_parallel_make: