@@ -361,6 +361,30 @@ def setup_bitbake_build(bitbake_config, layerdir, setupdir, thisdir, update_bb_c
f.write('\n')
f.write(content)
+ def _make_default_target_wrapper(setupdir):
+ default_target = bitbake_config.get("bb-target")
+ if not default_target:
+ return
+
+ wrapper = os.path.join(setupdir, 'build-target')
+ script = """#!/bin/sh
+# build-target wrapper created by bitbake-setup
+set -e
+
+if [ "$#" -gt 0 ]; then
+ target="$*"
+else
+ target="{default_target}"
+fi
+
+. "$(dirname "$0")/build/init-build-env" >/dev/null
+bitbake $target
+""".format(default_target=default_target)
+
+ with open(wrapper, 'w') as f:
+ f.write(script)
+ os.chmod(wrapper, 0o755)
+
bitbake_builddir = os.path.join(setupdir, "build")
logger.plain("Setting up bitbake configuration in\n {}\n".format(bitbake_builddir))
@@ -394,6 +418,7 @@ def setup_bitbake_build(bitbake_config, layerdir, setupdir, thisdir, update_bb_c
_make_init_build_env(bitbake_builddir, os.path.realpath(oeinitbuildenvdir))
_prepend_passthrough_to_init_build_env(bitbake_builddir)
+ _make_default_target_wrapper(setupdir)
siteconf_symlink = os.path.join(bitbake_confdir, "site.conf")
siteconf = os.path.normpath(os.path.join(setupdir, '..', "site.conf"))
Allow configurations to define 'bb-target'. When set, bitbake-setup creates a setupdir/build-target helper script that sources build/init-build-env and runs bitbake with the configured default target (or with arguments provided by the user). This reduces wrapper-script logic and makes setup usage closer to one-command project build workflows. Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org> --- bin/bitbake-setup | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)