Можно ли обеспечить установку зависимости для пакетов через fetchContent () или лучше просто сохранить find_package ()?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Можно ли обеспечить установку зависимости для пакетов через fetchContent () или лучше просто сохранить find_package ()?

Сообщение Anonymous »

Я понимаю, что мой вопрос очень похож на этот вопрос, но ответ там не помог, поскольку это было проблемой, когда Cmakelists.txt из извлеченной библиотеки. Я строю графическое приложение, которое зависит от Freetype для шрифтов. Я могу выполнять find_package (Freetype Confige Tress Trey Paths ...) с локальной установкой просто хорошо, но я хочу сохранить Option () , что позволяет использовать fetchContent () получить необходимые зависимости. По сути, я хочу, чтобы весь процесс создания Freetype был автоматизирован. Таким образом, я fetchContent () Zlib и PNG, но проблема, с которой я сталкиваюсь, заключается в том, что PNG не использует Zlib, который я получаю из более раннего fetchContent (): < /p>

Код: Выделить всё

set(ZLIB_BUILD_TESTING OFF CACHE BOOL "" FORCE)
set(ZLIB_BUILD_SHARED OFF CACHE BOOL "" FORCE)

FetchContent_Declare(
ZLIB
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG 5a82f71ed1dfc0bec044d9702463dbdf84ea3b71
)

set(PNG_SHARED OFF CACHE BOOL "" FORCE)
set(PNG_TESTS OFF CACHE BOOL "" FORCE)

FetchContent_Declare(
PNG
GIT_REPOSITORY https://github.com/pnggroup/libpng.git
GIT_TAG 34005e3d3d373c0c36898cc55eae48a79c8238a1
)

FetchContent_MakeAvailable(ZLIB PNG)
< /code>
Это Cmakelists.txt. Насколько я понимаю, Zlib не установлен во время вызова fetchContent () для него, поэтому для него нет каталога установки, который я мог бы передать в Zlib_root 
. Я также не могу установить его во время конфигурации вовремя для вызова fetchContent () для PNG. Это приводит к < /p>

Код: Выделить всё

-- Found ZLIB: D:/MSYS2/mingw64/lib/libz.dll.a (found version "1.3.1")

, которая не является версией, которую я намерен использовать, а тот, который мой модуль MSYS2 Cmake findzlib.cmake находит.
Неужели бессмысленно пытаться автоматизировать это? Должен ли я просто придерживаться find_package () или есть альтернативы?

Подробнее здесь: https://stackoverflow.com/questions/795 ... hcontent-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»