瀏覽代碼

dev-manual: Added note about BitBake processing brace characters.

Fixes YOCTO #3403

Provided a note at the front of the "Adding a Package" section
explaining the exception when using a closed curly brace character
inside a shell function with the character at the front of a
line with no leading spaces.

(From yocto-docs rev: a1c0972083751444a8cc89aa8a026f273d98e23e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Scott Rifenbark 12 年之前
父節點
當前提交
2997653fe3
共有 1 個文件被更改,包括 36 次插入0 次删除
  1. 36 0
      documentation/dev-manual/dev-manual-common-tasks.xml

+ 36 - 0
documentation/dev-manual/dev-manual-common-tasks.xml

@@ -726,6 +726,42 @@
             types of packages.
         </para>
 
+        <note>
+            <para>When writing shell functions, you need to be aware of BitBake's
+            curly brace parsing.
+            If a recipe uses a closing curly brace within the function and
+            the character has no leading spaces, BitBake produces a parsing
+            error.
+            If you use a pair of curly brace in a shell function, the
+            closing curly brace must not be located at the start of the line
+            without leading spaces.</para>
+            <para>Here is an example that causes BitBake to produce a parsing
+            error:
+            <literallayout class='monospaced'>
+     fakeroot create_shar() {
+         cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+     usage()
+     {
+       echo "test"
+       ###### The following "}" at the start of the line causes a parsing error ######
+     }
+     EOF
+     }
+            </literallayout>
+            Writing the recipe this way avoids the error:
+            <literallayout class='monospaced'>
+     fakeroot create_shar() {
+         cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+     usage()
+     {
+       echo "test"
+       ######The following "}" with a leading space at the start of the line avoids the error ######
+      }
+     EOF
+     }
+            </literallayout></para>
+        </note>
+
         <section id='usingpoky-extend-addpkg-singlec'>
             <title>Single .c File Package (Hello World!)</title>