Как создать рецепт Yocto для cmake с отдельным пакетом заголовочных файлов -dev? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь написать рецепт Yocto для внутренней библиотеки, которая использует cmake для сборки и установки.Запустив make install из командной строки, библиотека устанавливает следующие файлы (заголовки несколько сокращены):

-- Installing: /prefix/lib/libreflection.so
-- Installing: /prefix/lib/libreflection.a
-- Installing: /prefix/include/reflect
-- Installing: /prefix/include/reflect/type.h
-- Installing: /prefix/include/reflect/detail
-- Installing: /prefix/include/reflect/detail/type.h
-- Installing: /prefix/include/reflect/detail/property.h
-- Installing: /prefix/include/reflect/detail/iterator
-- Installing: /prefix/include/reflect/detail/iterator/range.h
-- Installing: /prefix/include/reflect/detail/accessor.h
-- Installing: /prefix/include/reflect/property.h
-- Installing: /prefix/include/reflect/register.h
-- Installing: /prefix/include/reflect/object.h
-- Installing: /prefix/lib/cmake/libreflection/libreflection-config.cmake
-- Installing: /prefix/lib/cmake/libreflection/libreflection-config-noconfig.cmake

Я бы хотел различить двоичный пакет ".so only" Yocto (libreflection)) и версия для разработки, которая дополнительно включает в себя статическую библиотеку, файлы заголовков и пакеты cmake (libreflection-dev).

Мой первоначальный рецепт выглядит следующим образом, но вместе с ним libreflection и libreflection-dev упаковывают все файлы:

DESCRIPTION = "C++ reflection library"
SECTION = "libs"
LICENSE = "CLOSED"

SRCREV = "${AUTOREV}"
SRCBRANCH = "master"
SRC_URI = "git://gitlab.company.com/group/${PN}.git;branch=${SRCBRANCH};protocol=ssh"

inherit cmake

S = "${WORKDIR}/git"

FILES_${PN}-dev += "${libdir}/cmake"

# The following are needed because the library is unversioned.
# See https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries#Non-versioned_Libraries
SOLIBS = ".so"
FILES_SOLIBSDEV = ""

Я пробовал различные изменения переменных FILES_${PN}*, но ни одна из них не достигла желаемого эффекта.Обычно я либо получаю ошибки упаковки, либо libreflection и libreflection-dev включают все файлы.

Как настроить рецепт так, чтобы libreflection включал только .so и libreflection-devвключает в себя все файлы?

...