Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!
Difference between revisions of "BitBake (dev)"
From Openembedded.org
m (adding to developer category) |
(→"Helloworld" using bb library) |
||
| Line 12: | Line 12: | ||
== "Helloworld" using bb library == | == "Helloworld" using bb library == | ||
| + | |||
| + | === Simplest === | ||
<pre> | <pre> | ||
| Line 24: | Line 26: | ||
</pre> | </pre> | ||
| − | + | === with data module === | |
<pre> | <pre> | ||
| Line 43: | Line 45: | ||
</pre> | </pre> | ||
| + | data module is well documented because it uses doctest. | ||
| + | |||
| + | === with persist_data module === | ||
| + | |||
| + | Now you want persistant data to exchange data between threads/tasks. | ||
| + | This can be done using bb.persist_data module that uses sqlite via pyslite2. | ||
| + | |||
| + | <pre> | ||
| + | #!/usr/bin/env python | ||
| + | # ex:ts=4:sw=4:sts=4:et | ||
| + | # -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- | ||
| + | |||
| + | import bb, os, sys | ||
| + | from bb import data, persist_data, fetch | ||
| + | |||
| + | __version__ = "0.0.1" | ||
| + | |||
| + | def main(): | ||
| + | """ | ||
| + | The main Method | ||
| + | """ | ||
| + | |||
| + | # persist_data module need debug_level to be set | ||
| + | bb.msg.set_debug_level(0) | ||
| + | |||
| + | # init a data with PERSISTENT_DIR to set where the data will be saved | ||
| + | d = data.init() | ||
| + | data.setVar('PERSISTENT_DIR', os.getcwd(), d) | ||
| + | |||
| + | # create persist_data base in bb_persist_data.sqlite3 | ||
| + | pd = persist_data.PersistData(d) | ||
| + | |||
| + | # create a sql table | ||
| + | pd.addDomain("MYBASE") | ||
| + | |||
| + | # add a data in this table | ||
| + | pd.setValue( "MYBASE", "TOTO", "hello world!") | ||
| + | |||
| + | # print it | ||
| + | val = pd.getValue ( "MYBASE", "TOTO") | ||
| + | print val | ||
| + | |||
| + | if __name__ == '__main__': | ||
| + | main() | ||
| + | |||
| + | </pre> | ||
[[Category:Dev]] | [[Category:Dev]] | ||
Revision as of 16:17, 2 October 2008
developer homepage
- First , RTFM ;-) : http://bitbake.berlios.de/manual/
- Don't forget mailinglist :
- Best documentation for source is via python documentation system.
Contents |
Tutorial
This tutorial focus bitbake developement, not bbclass or openembedded developement that is documented elsewhere.
"Helloworld" using bb library
Simplest
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
import bb
version = bb.__version__
bb.note("Hello from helloworld using lib bb v%s." % ( version ))
with data module
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
import os , bb
from bb import data
hello = ("Hello from helloworld using lib bb v%s." % ( bb.__version__ ))
d = data.init()
data.setVar('HELLO_MSG', hello, d)
mystring = data.getVar('HELLO_MSG', d, 1)
bb.note(mystring)
data module is well documented because it uses doctest.
with persist_data module
Now you want persistant data to exchange data between threads/tasks. This can be done using bb.persist_data module that uses sqlite via pyslite2.
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
import bb, os, sys
from bb import data, persist_data, fetch
__version__ = "0.0.1"
def main():
"""
The main Method
"""
# persist_data module need debug_level to be set
bb.msg.set_debug_level(0)
# init a data with PERSISTENT_DIR to set where the data will be saved
d = data.init()
data.setVar('PERSISTENT_DIR', os.getcwd(), d)
# create persist_data base in bb_persist_data.sqlite3
pd = persist_data.PersistData(d)
# create a sql table
pd.addDomain("MYBASE")
# add a data in this table
pd.setValue( "MYBASE", "TOTO", "hello world!")
# print it
val = pd.getValue ( "MYBASE", "TOTO")
print val
if __name__ == '__main__':
main()