Zafrullah Syed
Zafrullah Syed

Reputation: 1268

Cmake with bitbake recipe

I am trying to build an yocto image with my own package. I have OpenCV code on github which uses cmake.

I trying to write a recipe for it and facing lot of errors. Can any one give some hints on what functions or parameters to include in my recipe. My recipe looks as following

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

I followed these tutorials to write my recipe with cmake but in vain: Bitbake Player recipe

Cmake-Bitbake-QT

Upvotes: 16

Views: 49665

Answers (3)

elmsfu
elmsfu

Reputation: 289

If the CMakeLists.txt uses the install command then bitbake will do the install for you and you won't need to define you own do_install.

install(TARGETS cameracapture DESTINATION bin)

Upvotes: 23

Zafrullah Syed
Zafrullah Syed

Reputation: 1268

The correct way of writing own recipes with cmake as follows:

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}
}

Previously I didn't add do_install that's the reason yocto downloads the recipe but unable to include it Image.

Upvotes: 20

vinay hunachyal
vinay hunachyal

Reputation: 3891

add the source directory in your recipe.

example S = "${WORKDIR}/cameracapture

S is the source code path where your CMakeList.txt.

any how your are inheriting the cmake bbclass in your recipe, so it will take care of all configure , compile and install functionalities.

after doing this you can remove you do_configure function in the above recipe also.

you can add your make options if any to the below macro (as you kept empty). example

EXTRA_OECMAKE = "all"

Upvotes: 6

Related Questions