Cmake с рецептом bitbake

Я пытаюсь создать образ yocto с помощью своего собственного пакета. У меня есть код OpenCV на github, который использует cmake.

Я пытаюсь написать рецепт этого и сталкиваюсь с множеством ошибок. Может ли кто-нибудь подсказать, какие функции или параметры включить в мой рецепт. Мой рецепт выглядит следующим образом

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

Cmake-Bitbake-QT


person Zafrullah Syed    schedule 22.08.2013    source источник
comment
Не могли бы вы указать на ошибки?   -  person lpapp    schedule 24.08.2013
comment
Также не стоит больше использовать PR.   -  person lpapp    schedule 24.08.2013


Ответы (3)


Правильный способ написания собственных рецептов с 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 загружает рецепт, но не может добавить его Изображение.

person Zafrullah Syed    schedule 14.10.2013
comment
do_install не требуется, см. ответ elmsfu - person Anonymous; 10.08.2015
comment
Как и в предыдущем комментарии, do_install не требуется. cmake.bbclass по умолчанию запустит `oe_runmake 'DESTDIR = $ {D}' install`. - person Anders; 26.04.2016

Если в CMakeLists.txt используется команда install, то bitbake выполнит установку за вас, и вам не нужно будет указывать собственный do_install.

install(TARGETS cameracapture DESTINATION bin)
person elmsfu    schedule 07.05.2015
comment
Вы имеете в виду, что нет необходимости добавлять do_install() в рецепт? - person hukeping; 29.07.2019
comment
@hukeping Вам не нужно добавлять задачу do_install (). Инструкция по установке, указанная в ответе, должна быть добавлена ​​в CMakeLists.txt. do_install () из базового класса cmake будет использовать make install. - person chandola; 02.01.2021

добавьте исходный каталог в свой рецепт.

пример S = "${WORKDIR}/cameracapture

S - это путь к исходному коду, в котором находится ваш CMakeList.txt.

независимо от того, как вы наследуете cmake bbclass в своем рецепте, поэтому он позаботится обо всех функциях настройки, компиляции и установки.

после этого вы также можете удалить функцию do_configure в приведенном выше рецепте.

вы можете добавить свои параметры make, если они есть, в макрос ниже (так как вы оставили пустым). пример

EXTRA_OECMAKE = "all"

person vinay hunachyal    schedule 26.08.2013
comment
не могли бы вы объяснить мне do_install. У меня тоже есть подобная проблема при установке двоичных файлов. пожалуйста, смотрите вопрос ниже. stackoverflow.com/questions/18508048/ - person Pala; 29.08.2013