将图形库附加到 git 存储库或通过 cmake 下载是否好?
Is it good to attach graphic library to git repository or maybe download via cmake?
如标题所示,我想知道什么更好,在我的 git 存储库中附加图形库(例如 glew、glm、glfw 等),或者制作一个特殊的 cmake 模块来下载它建筑物?
我听说将库显式添加到 repo 是不合适的,尤其是当它们很大时,但是为每个库制作 cmake 模块可能非常糟糕...
您认为哪种方法更好?也许你有其他想法?您对此有何体验?
P.S。我在我的项目中使用 cmake.
编辑:您可以假设库有大约 10-20MB,而另一个项目文件 < 5MB。
我们在这里讨论两个截然不同的问题:构建配置和分发配置。
一般来说,您的项目和构建配置应尽可能少,并在适用的情况下依赖于系统范围内的库安装。这对于准备 - 例如 - 对于 Linux 分发非常重要,其中包管理器跟踪依赖项并且应该针对通过包管理器安装的库进行构建。
分发配置 OTOH 关注项目分发给最终用户的各种方式。这样的分发配置应该允许使用系统范围安装的库配置构建(就像你希望它用于 Linux 打包),但也可以生成独立的构建,其中还包括导入和构建所需库的精确版本(您不想自动使用最新版本,因为这可能会破坏您的构建)。
从这个意义上讲,分发配置负责专门化构建配置。自包含构建(包括第三方库的构建)的一个好方法是获取依赖项并将其构建到构建树中(你正在构建源代码树之外,是吗?)。
如标题所示,我想知道什么更好,在我的 git 存储库中附加图形库(例如 glew、glm、glfw 等),或者制作一个特殊的 cmake 模块来下载它建筑物?
我听说将库显式添加到 repo 是不合适的,尤其是当它们很大时,但是为每个库制作 cmake 模块可能非常糟糕...
您认为哪种方法更好?也许你有其他想法?您对此有何体验?
P.S。我在我的项目中使用 cmake.
编辑:您可以假设库有大约 10-20MB,而另一个项目文件 < 5MB。
我们在这里讨论两个截然不同的问题:构建配置和分发配置。
一般来说,您的项目和构建配置应尽可能少,并在适用的情况下依赖于系统范围内的库安装。这对于准备 - 例如 - 对于 Linux 分发非常重要,其中包管理器跟踪依赖项并且应该针对通过包管理器安装的库进行构建。
分发配置 OTOH 关注项目分发给最终用户的各种方式。这样的分发配置应该允许使用系统范围安装的库配置构建(就像你希望它用于 Linux 打包),但也可以生成独立的构建,其中还包括导入和构建所需库的精确版本(您不想自动使用最新版本,因为这可能会破坏您的构建)。
从这个意义上讲,分发配置负责专门化构建配置。自包含构建(包括第三方库的构建)的一个好方法是获取依赖项并将其构建到构建树中(你正在构建源代码树之外,是吗?)。