On Tue, 02 Feb 2016 16:13:12 Aníbal Limón wrote: > On 02/02/2016 04:06 PM, Paul Eggleton wrote: > > 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 <[email protected]> > >>>> > >>>> 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 <[email protected]> > >>>> --- > >>>> > >>>> 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. > > I guess two more variable expansions gives you no more/less performance > and also gives you the possibility to have the thing set in a clean manner,
OK, if you insist on using those, don't pass the variable name - get the value of the variable and then pass the value. For the record I'm still unhappy about unnecessarily adding variables like this. > > The naming of the manifest is something we can rely on, because external > > tools need to be able to. > > May be now, :). If we change that we also break anything that reads those files. We won't be changing those any time soon. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
