使用 cmake 的 Yocto 食谱找不到 git

Yocto recipe using cmake cannot find git

我正在尝试为 mongo-cxx-driver (https://github.com/mongodb/mongo-cxx-driver) 构建一个配方。我有 libbson 和 mongo-c-driver 的工作方法,这是必需的,但是当我尝试构建 mongo-cxx-driver 时,它在尝试克隆 git 存储库时失败.

$ bitbake mongo-cxx-driver

| CMake Error at 
/home/hme/projects/platform/yocto/poky/build/tmp/work/core2-64-poky-linux/mongo-cxx-driver/3.1.3-r0/recipe-sysroot-native/usr/share/cmake-3.8/Modules/ExternalProject.cmake:1805 (message):
|   error: could not find git for clone of EP_mnmlstc_core
| Call Stack (most recent call first):
|   /home/hme/projects/platform/yocto/poky/build/tmp/work/core2-64-poky-linux/mongo-cxx-driver/3.1.3-r0/recipe-sysroot-native/usr/share/cmake-3.8/Modules/ExternalProject.cmake:2560 (_ep_add_download_command)
|   src/bsoncxx/third_party/CMakeLists.txt:19 (ExternalProject_Add)
| 
| 
| -- Configuring incomplete, errors occurred!

食谱:

DESCRIPTION = "MongoDB C++ driver"
SECTION = "libs"
HOMEPAGE = "https://github.com/mongodb/mongo-cxx-driver"
LICENSE = "Apache-2.0"
DEPENDS = "libbson mongo-c-driver git-native"

inherit cmake pkgconfig

SRC_URI = "https://github.com/mongodb/mongo-cxx-driver/archive/r${PV}.tar.gz"

SRC_URI[md5sum] = "fd1ff0f9b2122225e3b402c2bae30427"
SRC_URI[sha256sum] = "cb1b371eb34e991b8bfac65146f862cd379aa8f7270c430e5f3d71d843245ed9"

LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"

S = "${WORKDIR}/mongo-cxx-driver-r${PV}"

如果我运行:

$ bitbake -c devshell mongo-cxx-driver

并通过 devshell 手动构建,它工作得很好。

有什么想法是错误的吗?

您应该尝试添加:

OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"

到你的食谱继承cmake

之后

包 git-native 可能在 ASSUME_PROVIDED variable. If so, you have to add git-replacement-native 中列为对您的食谱的依赖。