Я пытаюсь использовать CPack для упаковки своего проекта, но у меня возникла проблема с одной из моих зависимостей.
Во-первых, я пытаюсь использовать современный стиль CMake, полагаясь на цели и зависимости, смоделированные между целями с помощью target_link_libraries
. Мой проект использует библиотеку CMocka в качестве зависимости. Я добавил репозиторий CMocka как подмодуль git, и у меня есть add_subdirectory(cmocka_dir)
в моем собственном файле CMakeLists.txt
.
Я также использую CPack с генератором TGZ
, чтобы собрать все мои файлы в архив , Я просто set(CPACK_GENERATOR TGZ)
и include(CPack)
по моему CMakeLists.txt
. Я обнаружил, что это заботится обо всем, то есть, пока я не начал использовать CMocka. CMocka устанавливает множество CPACK_xxx
переменных внутри его root CMakeLists.txt
. Я считаю, что когда я включаю подкаталог CMocka в свой собственный проект, эти переменные распространяются внутри моей области видимости CMake и мешают процессу упаковки.
Мой вопрос заключается в том, как я могу это исправить. В частности:
- Есть ли способ изолировать CMocka в его собственной среде или иным образом предотвратить его нарушение в процессе упаковки?
- Я ошибаюсь, включив CMocka с помощью
add_subdirectory
? - Я неправильно делаю CPack, просто установив
CPACK_GENERATOR
и выполнив include(CPack)
?
Спасибо за ваши мысли.