我有一个大型项目,我将其分为“模块”或“子项目”。目录结构看起来像这样(简化,但基本的想法):
project-root/
CMakeLists.txt <-- Contains some variable definitions
module1/
CMakeLists.txt <-- Receives variable definitions from top-level
src/
module2/
CMakeLists.txt <-- Receives variable definitions from top-level
src/
根CMakeLists.txt没有定义任何库或可执行文件。它使用add_subdirectory(module1)
和add_subdirectory(module2)
来引用具有库和可执行文件的低级模块。
现在,这一切都很好。我正在使用CLion,它能够构建整个项目。我的问题是当开发人员想要编译只有一个模块时,而不必处理其他模块。
我在根级CMakeLists.txt中创建了变量,这些变量由模块的CMakeLists.txt文件使用。但是如果我只尝试编译其中一个模块,那么变量当然是未定义的(或空白)。有没有一种处理这类问题的标准方法?我希望能够独立编译每个模块,但我不想重新定义每个CMakeLists.txt文件中的变量。
答案 0 :(得分:0)