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

Aníbal Limón anibal.limon at linux.intel.com
Tue Feb 2 22:13:12 UTC 2016



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 <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.

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
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20160202/b4258a1a/attachment-0002.sig>


More information about the Openembedded-core mailing list