Success. The file tree depicted at the bottom of this mail is nearly the 
smallest, valid BitBake project that prints "Hello, World!" Here's the output:


    $ ../BitBake/bin/bitbake  a
    Parsing recipes: 100% 
|#############################################################| Time: 00:00:00
    Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 
0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    NOTE: Preparing runqueue
    NOTE: Executing RunQueue Tasks
    NOTE: Running task 1 of 1 (ID: 0, 
/home/pturley/Workspace/Hello/LayerA/a.bb, do_build)
    NOTE: package None: task do_build: Started
    Hello, World!
    NOTE: package None: task do_build: Succeeded
    NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun 
and all succeeded.


A few things to note:

1) This is not the *smallest* such BitBake project. For example, the 
"DESCRIPTION" and "PV" variables need not be assigned in "a.bb". I set those 
variables because I wanted "show-layers" and "show-recipes" to display 
reasonable information.

2) Some of the variables set in "bitbake.conf" have "simplified" values. For 
example, you would *not* want to use these values if there were multiple 
recipes and you had to disambiguate the output from each of them.

3) On the other hand, *all* the variable assignments in "bitbake.conf" are 
*essential* to BitBake itself. If you remove any one of those assignments, 
BitBake will either declare an error or die (usually because some internal 
variable is set to "None" and the BitBake code can't handle it).


------------------------------------------------------------


├── build
│   │
│   ├── classes
│   │   │
│   │   └── base.bbclass
│   │
│   │       +-----------------------------------------------
│   │       |  addtask build
│   │       +-----------------------------------------------
│   │
│   └── conf
│       │
│       ├── bblayers.conf
│       │
│       │   +-----------------------------------------------
│       │   |  BBLAYERS ?= " \
│       │   |    /home/pturley/Workspace/Hello/LayerA \
│       │   |    "
│       │   +-----------------------------------------------
│       │
│       └── bitbake.conf
│
│           +-----------------------------------------------
│           |  TMPDIR  = "${TOPDIR}/tmp"
│           |  CACHE   = "${TMPDIR}/cache"
│           |  STAMP   = "${TMPDIR}/stamps"
│           |  T       = "${TMPDIR}/work"
│           |  B       = "${TMPDIR}"
│           +-----------------------------------------------
│
├── LayerA
│   │
│   ├── a.bb
│   │
│   │       +-----------------------------------------------
│   │       |  DESCRIPTION = "Layer A Recipe"
│   │       |  PN = 'a'
│   │       |  PV = '1'
│   │       |
│   │       |  python do_build() {
│   │       |      bb.plain("Hello, World!");
│   │       |  }
│   │       +-----------------------------------------------
│   │
│   └── conf
│       │
│       └── layer.conf
│
│           +-----------------------------------------------
│           |  BBPATH .= ":${LAYERDIR}"
│           |
│           |  BBFILES += "${LAYERDIR}/*.bb"
│           |
│           |  BBFILE_COLLECTIONS += "A"
│           |  BBFILE_PATTERN_A := "^${LAYERDIR}/"
│           +-----------------------------------------------
│
└── BitBake

   The BitBake directory origin is:

       http://git.openembedded.org/bitbake/

   I have the 1.15.2 tag checked out, which is what
   Yocto denzil uses.

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to