cmake add subdirectory指定顺序
时间: 2024-11-25 10:15:09 浏览: 0
ubuntu安装cmake或升级指定版本cmake
5星 · 资源好评率100%
在CMake中,`add_subdirectory()`命令用于将一个单独的目录视为CMake项目的一部分并配置其构建过程。关于指定顺序,`add_subdirectory()`本身并不直接控制子目录的执行顺序。当CMake运行时,它会按照它们在`CMakeLists.txt`文件中的顺序依次对每个子目录进行配置(配置阶段[^1])和构建。
如果你希望控制编译顺序,通常的做法是在子目录的`CMakeLists.txt`中定义依赖关系,比如先依赖于另一个子目录的输出。这可以通过设置`target_dependencies`或`add_dependencies`来实现,但这主要影响的是构建阶段,而不是配置阶段的顺序。
示例:
```cmake
# module1/CMakeLists.txt
add_library(module1_src ${SRC_FILES})
add_subdirectory(module2)
set_target_properties(module1_src PROPERTIES DEPENDS module2)
# module2/CMakeLists.txt
add_library(module2_src ${SRC_FILES})
```
在这种情况下,模块2的构建会在模块1之后,因为module1_src依赖于module2的输出。然而,这并不会改变`add_subdirectory(module1)`和`add_subdirectory(module2)`之间的原始配置顺序。
阅读全文