在 Yocto 项目中,你可以通过 BitBake .bb 文件传递自定义变量到 CMakeLists.txt。这通常是通过设置 EXTRA_OECMAKE 变量来实现的,该变量允许你向 CMake 命令行添加额外的参数。
# add by cf
# 使用yocto原生cmake编译c app 模板
SUMMARY = "sss"
SECTION = "middleware"
LICENSE = "MIT"
#继承cmake类zlog readline termcap
inherit workonsrc cmake deploy
inherit pkgconfig
DEPENDS += "protobuf protobuf-native protobuf-c gtest"
WORKONSRC = "${TOPDIR}/../meta/meta-bos-bsp/recipes-example/bosdds"
# 指定源码编译目录
S = "${WORKDIR}"
do_install() {
# 安装库文件
install -d ${D}${libdir}/xxx
install -m 0755 ${S}/lib/*.so ${D}${libdir}/xxx
install -m 0755 ${S}/thirdparty/*.so ${D}${libdir}/xxx
# 安装头文件
install -d ${D}${includedir}/xxxs/c
install -m 0644 ${S}/inc/c/*.h ${D}${includedir}/xxx/c
install -d ${D}${includedir}/xxx/cpp
install -m 0644 ${S}/inc/cpp/*.hpp ${D}${includedir}/xxx/cpp
install -d ${D}${includedir}/xxx/zlog
install -m 0644 ${S}/thirdparty/zlog.h ${D}${includedir}/xxx/zlog
install -d ${D}${includedir}/bosdds/readline
install -m 0644 ${S}/thirdparty/readline/*.h ${D}${includedir}/xxx/readline
#cfg
install -d ${D}/usr/etc/zlog
install -m 0644 ${S}/etc/zlog/zlog_dds.conf ${D}/usr/etc/zlog
}
# EXTRA_OECMAKE_BUILD 添加参数
# FILES 表示这个软件包,需要打包进映像的文件是hellocmake,但决定这个软件包是否参与打包,需要在其他地方配置
FILES:${PN} += " ${bindir}/xxx_service \
/usr/lib64/bosdds/libxxx.so \
/usr/etc/zlog/xxx.conf \
"