libfreetype-devel-2.5.3-alt2 не требует pkgconfig(harfbuzz), при этом: Requires.private: zlib, libpng, harfbuzz >= 0.9.19 PS: похоже, это хозяйство придётся как-то доавтоматизировать -- не переносить же всё из private руками...
Это же Requires.private, требуется только для статики, зачем переносить?
openbabel при сборке ругался, пока не подобавлял руками: Package 'xdamage', required by 'egl', not found
Поскольку в сборочной среде требуется наличие пакетов и для компиляции, и для линковки -- видимо, всё-таки придётся прописывать содержимое Requires.private в порождаемые pkgconfig()-зависимости lib*-devel (или в эквиваленте).
*** Bug 29997 has been marked as a duplicate of this bug. ***
*** Bug 29998 has been marked as a duplicate of this bug. ***
*** Bug 29999 has been marked as a duplicate of this bug. ***
Нужно сказать, что проблема связана с особенностями поиска в cmake. Наблюдать её можно в openbabel и scribus, они собираются cmake. Например, от простейшего CMakeLists.txt include(FindPkgConfig) pkg_search_module(CAIRO REQUIRED cairo>=1.14.0) можно увидеть -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- Checking for one of the modules 'cairo>=1.14.0' Package pixman-1 was not found in the pkg-config search path. Perhaps you should add the directory containing `pixman-1.pc' to the PKG_CONFIG_PATH environment variable Package 'pixman-1', required by 'cairo', not found Package pixman-1 was not found in the pkg-config search path. Perhaps you should add the directory containing `pixman-1.pc' to the PKG_CONFIG_PATH environment variable при том, что, конечно же, pixman-1 не нужен для сборки.
(В ответ на комментарий №7) > Нужно сказать, что проблема связана с особенностями поиска в cmake. Наблюдать > её можно в openbabel и scribus, они собираются cmake. > > Например, от простейшего CMakeLists.txt > include(FindPkgConfig) > pkg_search_module(CAIRO REQUIRED cairo>=1.14.0) > > можно увидеть > -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") > -- Checking for one of the modules 'cairo>=1.14.0' > Package pixman-1 was not found in the pkg-config search path. > Perhaps you should add the directory containing `pixman-1.pc' > to the PKG_CONFIG_PATH environment variable > Package 'pixman-1', required by 'cairo', not found > Package pixman-1 was not found in the pkg-config search path. > Perhaps you should add the directory containing `pixman-1.pc' > to the PKG_CONFIG_PATH environment variable > > при том, что, конечно же, pixman-1 не нужен для сборки. Причина в том, что FindPkgConfig создаёт два набора переменных — для динамической и для статической линковки. Вот этот код: # Invokes pkgconfig two times; once without '--static' and once with # '--static' macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN}) _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN}) endmacro() Предлагаю убрать у него поиск библиотек для статической линковки. Если и найдётся один проект, которому это потребуется, можно положить FindPkgConfigStatic, который, напротив, будет заполнять только статические переменные.
(В ответ на комментарий №2) > openbabel при сборке ругался, пока не подобавлял руками: > Package 'xdamage', required by 'egl', not found Но главное, что это просто выводится cmake при поиске пакета, а на сборку не влияет. Если шум при сборке не мешает, можно ничего не делать, но я завёл issue на эту тему: https://gitlab.kitware.com/cmake/cmake/issues/18158