yocto系列讲解 (技巧篇) 64 - bb文件中字符串拆分和拼接简单示例

By: fu linux
E-mail: fulinux@sina.com
Blog: https://blog.csdn.net/fulinus
喜欢的盆友欢迎订阅!
你的喜欢就是我写作的动力!

目录

返回总目录 Yocto开发讲解系列 - 总目录

有个读者朋友想了解如何在bb文件中处理字符串,比如:
在这里插入图片描述
我今天简单研究了一下,因为以前也没有在bb文件里面处理字符串,简单验证写了一个示例程序,希望对读者有帮助,但不能确保是否是最优的方案。

有需要的盆友还需要读一下这几篇:
yocto-第4篇-创建自己的meta layer
yocto-第43篇-bb文件中函数实操演示(1)
yocto-第43篇-bb文件中函数实操演示(2)

我修改的文件路径和内容:

meta-mylayer/recipes-example/example/example_0.1.bb
  • 1

内容如下:

# Example
SUMMARY = "bitbake-layers recipe"
DESCRIPTION = "Recipe created by bitbake-layers"
LICENSE = "MIT"

ProjectRev = "abcdef_xyz_VA_0929_01.002.03"

python do_split_join() {
    strings = d.getVar("ProjectRev", True).split('.')
    for str in strings:
        bb.plain(str)

    bb.plain(strings[0])
    bb.plain(strings[1])
    bb.plain(strings[2])
    NewString = strings[0] + "." + strings[1]
    bb.plain(NewString)
}

addtask do_split_join before do_build
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

需要特别注意的是:缩进不能使用tab,最好是4个空格,怎么看呢?
在vim里面设置:

:set list
  • 1

另外编译之前最好是清理一下这个项目:

poky]$ source oe-init-build-env
build]$ bitbake -c cleanall example
  • 1
  • 2

编译和结果展示:

build]$ bitbake example
...
abcdef_xyz_VA_0929_01
002
03
abcdef_xyz_VA_0929_01
002
03
abcdef_xyz_VA_0929_01.002
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9