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 >>>> >>>> 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 >>>> --- >>>> >>>> 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, > > The naming of the manifest is something we can rely on, because external tools > need to be able to. May be now, :). alimon > > Cheers, > Paul >