【发布时间】:2016-03-05 01:16:28
【问题描述】:
我的 C++ 项目非常大,会生成 5 个不同的二进制文件。例如,在 VStudio 中,我的单一解决方案有 5 个不同的“项目”。例如,在 XCode 中,我的单个项目有 5 个不同的目标。
代码组织在一个非常深的“src”文件夹中,其中包含许多级别的嵌套子文件夹。这个 src 文件夹对所有 5 个二进制文件都是通用的,因为大部分源代码都被大量重用,但每个二进制文件都需要一些源代码,但不是全部。
我想知道如何高效地创建一个 CMakeList.txt,它可以在这里创建我需要的东西。
注意事项:
- 将代码重新组织成不同的结构既不是一种选择,也不是让代码成为一堆静态库。
- 每个子文件夹的 CMakeList.txt 不是一个选项。它们太多了,维护将是一场噩梦。
- 文件(GLOB_RECURSE 也不是一个很好的选择,因为它会为每个二进制文件获取大量源文件,而这些文件对于该特定二进制文件是不必要的。
- 理想情况下,会生成一个 XCode 项目(有 5 个目标)或一个 VStudio 解决方案(有 5 个项目)。我不想打开 5 个不同的项目。
我会完全满足于必须从某个地方的巨大列表中手动添加/删除源文件......理想情况下是可以被 CMake 吸收的外部文件。例如。 SourceFilesForBinary1.txt、SourceFilesForBinary2.txt 等,但我不知道该怎么做,或者这太疯狂了。
任何建议将不胜感激。
【问题讨论】:
标签: c++ xcode visual-c++ cmake