CMake简单MVC结构 我有一个简单的问题,关于如何在C++中组织我的简单MVC应用程序。我是CMake的新手,我正在学习如何使用它

CMake简单MVC结构 我有一个简单的问题,关于如何在C++中组织我的简单MVC应用程序。我是CMake的新手,我正在学习如何使用它,c++,model-view-controller,cmake,C++,Model View Controller,Cmake,设想一个简单的文件夹组织,如下所示: -有人能告诉我这个结构是否正确吗? -如果是这样的话,为它编写cmake文件的最佳方式是什么?在我看来,它的结构非常正常。事实上,我在我的项目中使用相同的一个。 在根CMake文件中,您将放置: include(Src/Model/CMakelists.txt) 而CMakelists.txt可能如下所示: set(MODEL_HEADERS src/Model/model.hpp) set(MODEL_SOURCES src/Model

设想一个简单的文件夹组织,如下所示:

-有人能告诉我这个结构是否正确吗?
-如果是这样的话,为它编写cmake文件的最佳方式是什么?

在我看来,它的结构非常正常。事实上,我在我的项目中使用相同的一个。 在根CMake文件中,您将放置:
include(Src/Model/CMakelists.txt)
CMakelists.txt
可能如下所示:

set(MODEL_HEADERS 
    src/Model/model.hpp)
set(MODEL_SOURCES
    src/Model/model.cpp 
    ${MODEL_HEADERS})
list(APPEND ALL_SOURCES ${MODEL_SOURCES})
source_group("Model" FILES ${MODEL_SOURCES})
其中
ALL\u SOURCES
是根文件中的变量,该根文件随后被传递到
add\u executable


对所有子文件夹重复同样的操作,您将拥有最终项目。

如果您喜欢该结构,那么cmake可以处理它。但我认为这太复杂了。提示:一个CMakeLists.txt中可以描述多个工件,因此如果您的MVC组件足够小(就文件数量而言),那么您可以使用单个CMakeLists.txt。在任何情况下,结构可以很容易地改变在未来当文件的数量发生变化。非常感谢您的答复。你能给我举个CMake如何处理的例子吗?随着我的项目的发展(随着我的开发),我想先设置合适的CMakeLists。非常感谢@ixSci。只有几个问题:我现在正在使用根文件夹中的
文件(GLOB MY_SRCS*.cpp)
。说file和set在用法上有什么区别?我猜您是想在根CMakelists.txt中使用
set()
来定义所有源代码,对吗?很抱歉,如果我问了一些已经回答过的问题,我对CMake还不熟悉,有时我会感到困惑,需要帮助。@Ash,
set
用于将变量设置为某个值<代码>文件是一个处理文件的函数。在您的情况下,您可以使用该函数获取所有cpp文件。是的,我总是使用
set
我从不使用
file
来建立源代码列表。再次感谢!抱歉这么多的编辑:)这是我第三次使用stackoverflow:P来处理main.cpp你建议我在根CMakelists.txt中也使用set吗?是的,这是使用CMake的一种常用方法-使用
set
来建立源代码列表。@Ash,顺便说一句,如果它回答了你的问题,请在答案旁边打勾接受它。