我对CMake项目和Git都比较缺乏经验。
如果我使用外部库,例如对于我的JsonCpp和OpenVR,将软件包/库放在我的项目结构中并将其与我自己的东西一起推送到我的Git存储库中是一种不好的方法吗?
之所以这样做,是因为我想让将来的用户更轻松,因此他们不必下载这些库并将安装目录自己添加到CMAKE_PREFIX_PATH。
感谢您的帮助。
将软件包/库放置在我的项目结构中并将其与我自己的东西一起推送到我的Git存储库中是不好的方法吗?
是,是。
之所以这样做,是因为我想让将来的用户更轻松,因此他们不必下载这些库并将安装目录自己添加到CMAKE_PREFIX_PATH。
只有确保用户将在相同的OS / arch上运行它们,您才能这样做。如果这些库使用其他系统库,则还必须确保它们在用户系统上存在并且具有兼容的版本。
一般来说,这很不可靠,通常的做法是分别分发依赖项,并在配置阶段搜索它们。
您需要一些依赖管理器。对于C ++,Connan非常不错。或者,您可以使用maven。
[cmake
也对此ExternalProject有一些解决方案。
我从未配置过任何一个,但是我一直在使用Conan和Maven(其他人设置了所有东西。
还有其他工具,您只需要选择一个即可。