Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CMake中处理多个项目 我目前正在研究一个VisualC++项目(它里面有多个子项目)转换到CMake。_C++_Cmake - Fatal编程技术网

在CMake中处理多个项目 我目前正在研究一个VisualC++项目(它里面有多个子项目)转换到CMake。

在CMake中处理多个项目 我目前正在研究一个VisualC++项目(它里面有多个子项目)转换到CMake。,c++,cmake,C++,Cmake,有一件事我不确定——基本上,为了包含顶级CMakeLists.txt文件中的子项目,我只使用add_subdirectory命令,并引用这些不同子项目存储的目录 但是,我有一个项目与我的顶级CMakeLists.txt文件位于同一目录中,因此我想知道是否仍然可以以某种方式包含此文件?CMake不允许我调用现有项目\u BINARY\u DIR上的add\u子目录(见下文): 我想不出另一种方法将此子项目包含到我的CMake构建中。有什么想法吗?add_子目录所做的就是添加一个包含CMakeLis

有一件事我不确定——基本上,为了包含顶级CMakeLists.txt文件中的子项目,我只使用
add_subdirectory
命令,并引用这些不同子项目存储的目录

但是,我有一个项目与我的顶级CMakeLists.txt文件位于同一目录中,因此我想知道是否仍然可以以某种方式包含此文件?CMake不允许我调用现有项目\u BINARY\u DIR上的add\u子目录(见下文):


我想不出另一种方法将此子项目包含到我的CMake构建中。有什么想法吗?

add_子目录所做的就是添加一个包含CMakeLists.txt文件的子目录,因此允许您添加当前目录是没有意义的。您只需在CMakeLists.txt文件中添加CMake逻辑即可构建项目的该部分。如果要分离逻辑,可以将其放入build_project.cmake中,然后使用include

include(build_project.cmake)
您可以包含任意数量的其他CMake文件,并且该CMake代码的评估将如同它是内联粘贴的一样。因此,所有正常的add_可执行文件和类似命令都可以工作

include(build_project.cmake)