我正在尝试使用 CPack 来打包我的项目,但我遇到了我的依赖项之一的问题。
首先,我试图通过依赖于目标和使用target_link_libraries
. 我的项目使用CMocka库作为依赖项。我已将 CMocka 存储库添加为 git 子模块,并且add_subdirectory(cmocka_dir)
在我自己的CMakeLists.txt
文件中。
我还使用带有TGZ
生成器的 CPack 将我的所有文件收集到一个存档中。我只是在我set(CPACK_GENERATOR TGZ)
的. 我发现这可以解决所有问题,也就是说,直到我开始使用 CMocka。CMocka在它的root中设置了很多变量。我相信,当我在自己的项目中包含 CMocka 的子目录时,这些变量会在我的 CMake 范围内传播,并且会干扰我的打包过程。include(CPack)
CMakeLists.txt
CPACK_xxx
CMakeLists.txt
我的问题是如何解决这个问题。具体来说:
- 有没有办法在自己的环境中隔离 CMocka,或者以其他方式防止它破坏我的包装过程?
- 使用 CMocka 包含我做错了
add_subdirectory
吗? - 我只是通过设置
CPACK_GENERATOR
和做错了 CPackinclude(CPack)
吗?
谢谢你的想法。