scripts/wic: explicitly set BUILDDIR within eSDK

When we run wic within eSDK:
$ wic create mkefidisk -e core-image-minimal

ERROR: BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)

In order to figure out variable values, one must have sourced
the OE build environment setup script. However, when we are in
within the eSDK environment which isn't initialised like the
normal OE build environment, we can't use wic utility with eSDK.

Reference:
https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#wic-requirements

While wic ought to be fixed to be able to run without bitbake
& native tools [YOCTO #11281], but this is a workaround to set
BUILDDIR in the environment so that bitbake environment is setup
for wic to build its required native tools.

(From OE-Core rev: 03fa13a269d2887cc5d13fd474fb39a2be037f2c)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chang Rebecca Swee Fun 2018-01-11 22:55:22 +08:00 committed by Richard Purdie
parent 1d52d1a46a
commit 422e16fae3

View File

@ -51,6 +51,8 @@ sdkroot = scripts_path
if os.environ.get('SDKTARGETSYSROOT'):
while sdkroot != '' and sdkroot != os.sep:
if os.path.exists(os.path.join(sdkroot, '.devtoolbase')):
# Set BUILDDIR for wic to work within eSDK
os.environ['BUILDDIR'] = sdkroot
# .devtoolbase only exists within eSDK
# If found, initialize bitbake path for eSDK environment and append to PATH
sdkroot = os.path.join(os.path.dirname(scripts_path), 'bitbake', 'bin')