我正在学习/审查 CMake,因为我正在考虑将我们的代码迁移到它。我们在当前的 make 系统中经常做的一件事是“子项目”公共代码文件。例如,我们有很多共享的通用头文件(加上一些 c/cpp 文件),它们包含在我们创建的每个项目中。我想在 CMake 中复制它,但我没有看到一个简单的方法。准确地说,我想做类似的事情:
父 CMakeLists.txt
add_subdirectory(shared_folder shared_build_folder)
#Next line should somehow add in the files reference in the shared_folder
add_executable([specific files for this project] build_folder)
子 CMakeLists.txt (shared_folder)
#Somehow have a list of files here that get added to the parent project
到目前为止,我已经找到了各种“方法”来做到这一点,但似乎都有些老套。我得出的结论是,这实际上是我必须做的事情,而 CMake 并不真正适合这种开发风格。为清楚起见,我的大多数解决方案都涉及在父级别创建一个由文件列表组成的变量之类的操作。这个变量(通过一些恶作剧)可以“传递”给任何孩子/从任何孩子“传递”,填充,然后当我调用 add_exectuable 时,我使用该变量来添加文件。
我所有的解决方案都涉及相当多的宏/函数,而且似乎有相当多的开销。这是其他人尝试过的吗?有关执行此操作的最佳方法的任何线索?
谢谢安德鲁