如何使用2个主要src文件构建cmake项目

时间:2019-10-15 21:37:02

标签: c++ cmake

我想了解如何正确构建cpp项目。我正在使用构建生成器CMAKE。我使用的构建系统是Ninja。我的项目中有2个主要功能。每个main应该编译成不同的可执行文件。

何时以及为什么应该使用多个cmake文件?
如何更好地组织项目?

    |-- CMakeLists.txt
    |-- README.md
    |-- env.csh
    |-- include
    |   |-- Pen.h
    |   |-- Cup.h
    |   |-- Clip.h
    |   |-- Fun.h
    |   |-- Ins.h
    |   |-- Ne.h
    |   `-- Pa.h
    |-- libs
    |-- src
    |   |-- Pen.cpp
    |   |-- Cup.cpp
    |   |-- Clip.cpp
    |   |-- Fun.cpp
    |   |-- Ins.cpp
    |   |-- Ne.cpp
    |   |-- Pa.cpp
    |   |-- main0.cpp
    |   `-- main1.cpp
    `-- tests
        `-- test.cpp

1 个答案:

答案 0 :(得分:1)

项目中的每个可执行文件都需要一行add_executable()。试试这个CMakeLists.txt文件(主要是从内存写入的):

cmake_minimum_required(VERSION 2.8)
project(myproject LANGUAGES CXX)
enable_testing()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
set(SOURCES 
    src/Pen.cpp 
    src/Cup.cpp  
    src/Clip.cpp  
    src/Fun.cpp  
    src/Ins.cpp  
    src/Ne.cpp  
    src/Pa.cpp
)
add_executable(main0 src/main0.cpp ${SOURCES})
add_executable(main1 src/main1.cpp ${SOURCES})
add_executable(unittests tests/test.cpp ${SOURCES})
add_test(tests unittests)