the multiconfig files are required at ${SDK_OUTPUT}/${SDKPATH}
for the populate_sdk_ext to pass. Without the multiconfig files
following command runs into error:

  $ bitbake -c populate_sdk_ext mc::${image} mc:${conf1}:${image}

ERROR: bitbake failed:
ERROR: ParseError at ${/path}/poky/build/${tmp}/work/${machine}/${image}
                      /tmp-renamed-sdk/layers/poky/meta/conf/bitbake.conf:760:
                      Could not include required file 
conf/multiconfig/${conf1}.conf

Signed-off-by: Sourabh Banerjee <sbane...@codeaurora.org>
---
 meta/classes/populate_sdk_ext.bbclass | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/meta/classes/populate_sdk_ext.bbclass 
b/meta/classes/populate_sdk_ext.bbclass
index e6bf27c..8d53219 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -184,11 +184,22 @@ def create_filtered_tasklist(d, sdkbasepath, 
tasklistfile, conf_initpath):
         if os.path.exists(localconf + '.bak'):
             os.replace(localconf + '.bak', localconf)
 
+def list_all_files(path):
+    all_files = list()
+    entries = os.listdir(path)
+    for entry in entries:
+       if os.path.isdir(path+entry):
+          all_files = all_files + list_all_files(path+entry)
+       else:
+          all_files.append(entry)
+    return all_files
+
 python copy_buildsystem () {
     import re
     import shutil
     import glob
     import oe.copy_buildsystem
+    from distutils.dir_util import copy_tree
 
     oe_init_env_script = d.getVar('OE_INIT_ENV_SCRIPT')
 
@@ -401,6 +412,15 @@ python copy_buildsystem () {
         with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f:
             f.write('meta/conf\n')
 
+    # copy all contents of multiconfig directory from builddir if exists
+    if os.path.exists(builddir + '/conf/multiconfig/'):
+        try:
+            os.mkdir(baseoutpath + '/conf/multiconfig/')
+        except FileExistsError:
+            pass
+
+        copy_tree(builddir + '/conf/multiconfig/',  baseoutpath + 
'/conf/multiconfig/')
+
     # Ensure any variables set from the external environment (by way of
     # BB_ENV_EXTRAWHITE) are set in the SDK's configuration
     extralines = []
@@ -525,7 +545,7 @@ python copy_buildsystem () {
     # it updated, since it gets modified during SDK installation (see
     # sdk_ext_postinst() below) thus the checksum we take here would always
     # be different.
-    manifest_file_list = ['conf/*']
+    manifest_file_list = list_all_files('conf/')
     esdk_manifest_excludes = (d.getVar('ESDK_MANIFEST_EXCLUDES') or '').split()
     esdk_manifest_excludes_list = []
     for exclude_item in esdk_manifest_excludes:
-- 
2.7.4



-- 
Regards,
Sourabh
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147614): 
https://lists.openembedded.org/g/openembedded-core/message/147614
Mute This Topic: https://lists.openembedded.org/mt/80348813/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to