Difference between revisions of "BitBake (dev)"

From Openembedded.org
Jump to: navigation, search
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>
  
Same using data class :
+
=== 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

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()