在C++项目开发中,CMake是一种广泛使用的构建工具,它可以帮助我们管理和构建中大型项目。下面是一个适用于中大型C++工程的CMake模板。
项目结构
首先,我们需要定义一个清晰的项目结构。一个典型的中大型C++项目可能包括以下目录和文件:
/my_project/srcmain.cpp/module1file1.cppfile1.h/module2file2.cppfile2.h/include/module1file1.h/module2file2.h/teststest1.cpptest2.cppCMakeLists.txt
在这个结构中,src
目录包含所有的源代码文件,include
目录包含所有的头文件,tests
目录包含所有的测试文件。
CMakeLists.txt
接下来,我们需要创建一个CMakeLists.txt
文件来定义构建规则。以下是一个基本的CMake模板:
cmake_minimum_required(VERSION 3.10)
project(my_project)set(CMAKE_CXX_STANDARD 14)include_directories(include)file(GLOB_RECURSE SOURCES "src/*.cpp")add_executable(my_project ${SOURCES})enable_testing()
add_subdirectory(tests)
在这个模板中,我们首先定义了CMake的最低版本要求和项目名称。然后,我们设置了C++的标准为C++14,并包含了所有的头文件目录。接着,我们使用file
命令和GLOB_RECURSE
选项来查找src
目录下的所有.cpp
文件,并将它们添加到SOURCES
变量中。最后,我们使用add_executable
命令来创建一个可执行文件,并使用SOURCES
变量作为源代码文件。我们还启用了测试,并添加了tests
目录。