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
C++ CMake文件、项目结构,包括谷歌测试库_C++_Cmake_Clang - Fatal编程技术网

C++ CMake文件、项目结构,包括谷歌测试库

C++ CMake文件、项目结构,包括谷歌测试库,c++,cmake,clang,C++,Cmake,Clang,我在理解如何编写CMake文件方面遇到了很多困难。让我们说大多数可用的教程都很糟糕,就像真的很糟糕一样 所以我试着根据每一章将作业编码在一本书中,并用谷歌测试进行测试。我知道我必须在每个子目录中包含一个CMake文件,并且我想从git子模块编译GoogleTest和GoogleMock作为共享模块。我的目标是让CMake从根目录和分支目录运行到每个目录,编译每个子文件夹,而不必添加每个文件,而是使用通配符编译所有文件 项目结构类似于: 根 CMakeLists.txt 自述文件 教训 谷歌

我在理解如何编写CMake文件方面遇到了很多困难。让我们说大多数可用的教程都很糟糕,就像真的很糟糕一样

所以我试着根据每一章将作业编码在一本书中,并用谷歌测试进行测试。我知道我必须在每个子目录中包含一个CMake文件,并且我想从git子模块编译GoogleTest和GoogleMock作为共享模块。我的目标是让CMake从根目录和分支目录运行到每个目录,编译每个子文件夹,而不必添加每个文件,而是使用通配符编译所有文件

项目结构类似于:

    • CMakeLists.txt
    • 自述文件
    • 教训
      • 谷歌测试(git子模块)
      • 第1课
        • src
          • CMakeList.txt
          • main.cpp
        • 试验
          • CMakeList.txt
          • test_main.cpp
        • CMakeLists.txt

如何格式化CMake文件以将所有这些构建自动生成到一个文件中以处理所有这些构建?

CMake开发人员说,最好不要使用globbing来添加源代码,但这是可以实现的。即使在有10000个源文件的项目中,我仍然会逐个添加每个文件