使用Bitbake配方的Cmake

13

我正在尝试使用自己的包构建一个Yocto镜像。我在GitHub上有使用CMake的OpenCV代码。

我正在尝试为此编写一个recipe,但遇到了很多错误。是否有人可以给我一些提示,告诉我应该在我的recipe中包含哪些函数或参数。我的recipe如下所示:

DESCRIPTION = "cameracapture application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r0" 

DEPENDS += "opencv"

SRC_URI = "git://https://github.com/zafrullahsyed/cameracapture.git;protocol=https;tag=v0.1"

EXTRA_OECMAKE=""

do_configure() { 
 cmake ../ 
} 

inherit pkgconfig cmake

我按照这些教程使用cmake编写我的配方,但是没有成功:

Bitbake Player recipe

Cmake-Bitbake-QT


请问您能否提及错误? - László Papp
另外,您不应再使用PR。 - László Papp
3个回答

21
如果CMakeLists.txt使用install命令,那么bitbake将为您执行安装操作,您不需要定义自己的do_install。
install(TARGETS cameracapture DESTINATION bin)

你的意思是这个食谱中不需要添加 do_install() 吗? - hukeping
@hukeping,您不必添加do_install()任务。安装指令如答案所述应添加在CMakeLists.txt中。cmake基类中的do_install()将使用"make install"。 - chandola

20

使用cmake编写自己的配方的正确方法如下:

DESCRIPTION = "cameracapture application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r0" 

DEPENDS = "opencv"

SRC_URI = "git://github.com/zafrullahsyed/cameracapture.git;protocol=https;tag=v0.1"

S = "${WORKDIR}/git"

inherit pkgconfig cmake

do_install() {
    install -d ${D}${bindir}
    install -m 0755 cameracapture ${D}${bindir}
}

之前我没有添加do_install,这就是为什么Yocto会下载该配方但无法将其包含在镜像中的原因。


7
无需执行do_install操作,参见elmsfu的回答。 - Anonymous
5
与前面的评论相似,do_install不是必需的。cmake.bbclass默认会运行oe_runmake 'DESTDIR=${D}' install - Anders

5
在您的配方中添加源目录。
例如: S = "${WORKDIR}/cameracapture S是CMakeList.txt所在的源代码路径。
无论如何,您的配方都继承了cmake bbclass,因此它将处理所有配置、编译和安装功能。
完成此操作后,您还可以删除上面配方中的do_configure函数。
如果有任何make选项,您可以将其添加到以下宏中(如保持为空)。 例如: EXTRA_OECMAKE = "all"

1
你能解释一下 do_install 吗?我在安装二进制文件时也遇到了类似的问题。请看下面的问题链接:https://dev59.com/qHbZa4cB1Zd3GeqPDj5F - Pala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接