[OE-core] [PATCH 18/20] classes/populate_sdk_ext: Add SDK_EXT_TARGET_MANIFEST and SDK_EXT_HOST_MANIFEST

Paul Eggleton paul.eggleton at linux.intel.com
Tue Feb 2 22:06:59 UTC 2016


On Tue, 02 Feb 2016 16:05:06 Aníbal Limón wrote:
> On 02/02/2016 03:52 PM, Paul Eggleton wrote:
> > On Tue, 02 Feb 2016 09:14:21 Aníbal Limón wrote:
> >> From: Aníbal Limón <limon.anibal at gmail.com>
> >> 
> >> Extensible SDK needs to point to the correct manifest so add
> >> SDK_EXT_TARGET_MANIFEST and SDK_EXT_HOST_MANIFEST variables.
> >> 
> >> oeqa/oetest.py: Fix SDKExtTestContext for load the correct manifests.
> >> 
> >> Signed-off-by: Aníbal Limón <limon.anibal at gmail.com>
> >> ---
> >> 
> >>  meta/classes/populate_sdk_ext.bbclass |  3 +++
> >>  meta/lib/oeqa/oetest.py               | 11 +++++++++--
> >>  2 files changed, 12 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/meta/classes/populate_sdk_ext.bbclass
> >> b/meta/classes/populate_sdk_ext.bbclass index fc96a4b..27dc030 100644
> >> --- a/meta/classes/populate_sdk_ext.bbclass
> >> +++ b/meta/classes/populate_sdk_ext.bbclass
> >> @@ -43,6 +43,9 @@ B_task-populate-sdk-ext = "${SDK_DIR}"
> >> 
> >>  TOOLCHAINEXT_OUTPUTNAME = "${SDK_NAME}-toolchain-ext-${SDK_VERSION}"
> >>  TOOLCHAIN_OUTPUTNAME_task-populate-sdk-ext =
> >>  "${TOOLCHAINEXT_OUTPUTNAME}"
> >> 
> >> +SDK_EXT_TARGET_MANIFEST =
> >> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
> >> +SDK_EXT_HOST_MANIFEST =
> >> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest" +
> >> 
> >>  SDK_TITLE_task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME', True) or
> >> 
> >> d.getVar('DISTRO', True)} Extensible SDK"
> >> 
> >>  python copy_buildsystem () {
> >> 
> >> diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
> >> index 6beb6c5..c951989 100644
> >> --- a/meta/lib/oeqa/oetest.py
> >> +++ b/meta/lib/oeqa/oetest.py
> >> 
> >> @@ -382,14 +382,18 @@ class SDKTestContext(TestContext):
> >>          self.sdktestdir = sdktestdir
> >>          self.sdkenv = sdkenv
> >> 
> >> +        if not hasattr(self, 'target_manifest_name'):
> >> +            self.target_manifest_name = "SDK_TARGET_MANIFEST"
> >> 
> >>          try:
> >> -            with open(d.getVar("SDK_TARGET_MANIFEST", True)) as f:
> >> 
> >> +            with open(d.getVar(self.target_manifest_name, True)) as f:
> >>                   self.pkgmanifest = f.read()
> >>          
> >>          except IOError as e:
> >>              bb.fatal("No package manifest file found. Did you build the
> >>              sdk
> >> 
> >> image?\n%s" % e)
> >> 
> >> +        if not hasattr(self, 'host_manifest_name'):
> >> +            self.host_manifest_name = "SDK_HOST_MANIFEST"
> >> 
> >>          try:
> >> -            with open(d.getVar("SDK_HOST_MANIFEST", True)) as f:
> >> 
> >> +            with open(d.getVar(self.host_manifest_name, True)) as f:
> >>                  self.hostpkgmanifest = f.read()
> >>          
> >>          except IOError as e:
> >>              bb.fatal("No host package manifest file found. Did you build
> >> 
> >> the sdk image?\n%s" % e) @@ -406,6 +410,9 @@ class
> >> 
> >> SDKTestContext(TestContext):
> >>  class SDKExtTestContext(SDKTestContext):
> >>      def __init__(self, d, sdktestdir, sdkenv):
> >> +        self.target_manifest_name = "SDK_EXT_TARGET_MANIFEST"
> >> +        self.host_manifest_name = "SDK_EXT_HOST_MANIFEST"
> >> +
> >> 
> >>          super(SDKExtTestContext, self).__init__(d, sdktestdir, sdkenv)
> >>          
> >>          self.sdkextfilesdir =
> >>          os.path.join(os.path.dirname(os.path.abspath(
> > 
> > I really don't like the idea of passing the variable name here rather than
> > values. However, besides that, the manifest is always the SDK name plus
> > .host.manifest or .target.manifest - do we even need to pass separate
> > names? All you should need is the name of the SDK i.e. the value of
> > TOOLCHAINEXT_OUTPUTNAME.
> 
> I prefer to have explicit value and construct them into one place
> instead of have many name constructions like you said to use
> TOOLCHAINEXT_OUTPUTNAME and suppose that always be end with .{host,
> target}.manifest.

When you add a variable to populate_sdk_ext.bbclass, it isn't just defined for 
the ext SDK - it's defined for every image recipe. I want to try to avoid 
defining additional variables and thus expanding the environment where we don't 
really need to.

The naming of the manifest is something we can rely on, because external tools 
need to be able to.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-core mailing list