yocto通过环境变量控制代码的编译
起因:平台上有个项目比较特殊,需要单独支持一个功能。但是平台的其他项目又不需求该功能。为了便于管理,就决定在源码里通过宏控来控制。所以我们想通过编译选项来配置不同的代码。
实施方案:通过编译选项去配置环境变量,然后在bb文件里面根据环境变量的信息,去定义对应的宏。
具体实现方案:
1、在编译脚本里面定义如下环境变量:
export TEST_FUNC_ENABLE=1
说明:这里脚本怎么写,编译选项,参数解析就自己去实现了。
2、将TEST_FUNC_ENABLE环境变量添加到yocto的BB_ENV_EXTRAWHITE环境变量里面
export BB_ENV_EXTRAWHITE="${BB_ENV_EXTRAWHITE} TEST_FUNC_ENABLE"
说明:
a、BB_ENV_EXTRAWHITE变量一般在set_bb_env.sh里面。
b、此步操作主要是将TEST_FUNC_ENABLE导入到bitbak环境里面
3、在自己需要的bb文件里面,定义对应的宏:
TEST_FUNC_ENABLE_VA