我即将根据 GPL 将我一直在从事的项目上传到 Sourceforge 上,并希望获得一些关于如何以易于理解和任何可能查看的开发人员使用的方式组织代码的建议它与 git 以及 Sourceforge 呈现事物的方式配合得很好。
我的项目是一个跨平台的 C++ 应用程序,包括以下内容:
- 执行实际工作的库部分
- 一个单独的 GUI 部分,它使用库部分
- 开源库,编译库需要包含路径
- 已修改的开源库,因此在某种意义上也是该项目的直接部分
- 所有库的编译输出
组织这个的最佳方式是什么?
在自己处理它时,从项目根目录我有这样的:
/LibPortion
/GuiPortion
/libs/open source libraries
/libs/modified open source libraries
/libs/compiled/ 保存已编译的库,包括在为 Windows 编译时不是来自开源库的,例如 Cygwin 库文件
这是一种合理的组织方式吗?这符合惯例和期望吗?
签入我的项目时,签入开源库以及项目的一部分是否有意义?我认为这样做是有意义的,因为这可以最大限度地减少为新开发人员设置和运行项目的摩擦。当然,我至少应该检查修改后的开源库。
此外,在已编译库下的存储库中包含什么意义?我认为最好告诉 git 忽略该目录并将其留空,因为它的内容在每个构建目标上都会有所不同,因为我的项目是跨平台的。
但是,对于不想自己构建和/或下载所有库以提供为主要平台预编译的库的人来说,这似乎也非常好。分享这些最聪明的方法是什么?我正在查看 Sourceforge,如果不是作为我的 git 存储库的一部分,我应该如何分享这些对我来说并不明显。