From: "cristiana.voicu" <cristiana.voicu@intel.com>
To: Valentin Popa <valentin.popa@intel.com>
Cc: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH] HOB: MACHINE should be saved in conf files using ?=
Date: Mon, 30 Sep 2013 10:34:13 +0300 [thread overview]
Message-ID: <52492975.20408@intel.com> (raw)
In-Reply-To: <1380291041-11238-1-git-send-email-valentin.popa@intel.com>
On 09/27/2013 05:10 PM, Valentin Popa wrote:
> MACHINE var is saved using early assignment operator.
> Calling MACHINE=x bitbake core-image-... works properly.
> Comment "#added by bitbake" is replaced with "#added by hob".
>
> [YOCTO #5070]
> Signed-off-by: Valentin Popa <valentin.popa@intel.com>
> ---
> bitbake/lib/bb/cooker.py | 17 ++++++++++-------
> bitbake/lib/bb/ui/crumbs/builder.py | 2 +-
> bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 7 ++++++-
> 3 files changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
> index ff2af69..ce7ca43 100644
> --- a/bitbake/lib/bb/cooker.py
> +++ b/bitbake/lib/bb/cooker.py
> @@ -193,7 +193,10 @@ class BBCooker:
> if op == "append":
> self.appendConfigurationVar(var, val, default_file)
> elif op == "set":
> - self.saveConfigurationVar(var, val, default_file)
> + self.saveConfigurationVar(var, val, default_file, "=")
> + elif op == "earlyAssign":
> + self.saveConfigurationVar(var, val, default_file, "?=")
> +
>
> def appendConfigurationVar(self, var, val, default_file):
> #add append var operation to the end of default_file
> @@ -207,7 +210,7 @@ class BBCooker:
> for c in contents:
> total += c
>
> - total += "#added by bitbake"
> + total += "#added by hob"
> total += "\n%s += \"%s\"\n" % (var, val)
>
> with open(default_file, 'w') as f:
> @@ -218,7 +221,7 @@ class BBCooker:
> loginfo = {"op":append, "file":default_file, "line":total.count("\n")}
> self.data.appendVar(var, val, **loginfo)
>
> - def saveConfigurationVar(self, var, val, default_file):
> + def saveConfigurationVar(self, var, val, default_file, op):
>
> replaced = False
> #do not save if nothing changed
> @@ -260,8 +263,8 @@ class BBCooker:
> #check if the variable was saved before in the same way
> #if true it replace the place where the variable was declared
> #else it comments it
> - if contents[begin_line-1]== "#added by bitbake\n":
> - contents[begin_line] = "%s = \"%s\"\n" % (var, val)
> + if contents[begin_line-1]== "#added by hob\n":
> + contents[begin_line] = "%s %s \"%s\"\n" % (var, op, val)
> replaced = True
> else:
> for ii in range(begin_line, end_line):
> @@ -290,8 +293,8 @@ class BBCooker:
> total += c
>
> #add the variable on a single line, to be easy to replace the second time
> - total += "\n#added by bitbake"
> - total += "\n%s = \"%s\"\n" % (var, val)
> + total += "\n#added by hob"
> + total += "\n%s %s \"%s\"\n" % (var, op, val)
>
> with open(default_file, 'w') as f:
> f.write(total)
> diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
> index 86fdbfe..f9fd15a 100755
> --- a/bitbake/lib/bb/ui/crumbs/builder.py
> +++ b/bitbake/lib/bb/ui/crumbs/builder.py
> @@ -197,7 +197,7 @@ class Configuration:
> handler.set_var_in_file("BBLAYERS", self.layers, "bblayers.conf")
> # local.conf
> if not defaults:
> - handler.set_var_in_file("MACHINE", self.curr_mach, "local.conf")
> + handler.early_assign_var_in_file("MACHINE", self.curr_mach, "local.conf")
> handler.set_var_in_file("DISTRO", self.curr_distro, "local.conf")
> handler.set_var_in_file("DL_DIR", self.dldir, "local.conf")
> handler.set_var_in_file("SSTATE_DIR", self.sstatedir, "local.conf")
> diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
> index ef74e56..3f5beba 100644
> --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
> +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
> @@ -315,7 +315,7 @@ class HobHandler(gobject.GObject):
>
> def set_machine(self, machine):
> if machine:
> - self.set_var_in_file("MACHINE", machine, "local.conf")
> + self.early_assign_var_in_file("MACHINE", machine, "local.conf")
>
> def set_sdk_machine(self, sdk_machine):
> self.set_var_in_file("SDKMACHINE", sdk_machine, "local.conf")
> @@ -472,6 +472,11 @@ class HobHandler(gobject.GObject):
> self.server.runCommand(["setVarFile", var, val, default_file, "set"])
> self.runCommand(["disableDataTracking"])
>
> + def early_assign_var_in_file(self, var, val, default_file=None):
> + self.runCommand(["enableDataTracking"])
> + self.server.runCommand(["setVarFile", var, val, default_file, "earlyAssign"])
> + self.runCommand(["disableDataTracking"])
> +
> def append_var_in_file(self, var, val, default_file=None):
> self.server.runCommand(["setVarFile", var, val, default_file, "append"])
>
Looks good to me.
Cristiana
next prev parent reply other threads:[~2013-09-30 7:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-27 14:10 [PATCH] HOB: MACHINE should be saved in conf files using ?= Valentin Popa
2013-09-30 7:34 ` cristiana.voicu [this message]
2013-10-03 13:27 ` cristiana.voicu
2013-10-04 13:37 ` Richard Purdie
2013-10-04 16:29 ` Valentin Popa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52492975.20408@intel.com \
--to=cristiana.voicu@intel.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=valentin.popa@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.