如何将Visual Studio与CMake一起使用并保留文件结构

How to use Visual Studio with CMake AND preserve file structure

本文关键字:保留 文件结构 一起 CMake Visual Studio      更新时间:2024-03-29

我使用CMake创建C++项目。然后我想使用Visual Studio作为我的IDE。但我面临的问题是,我无法使文件结构正确。问题是:

假设磁盘上有以下文件结构。

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.20)
set(sourceDirectory   src)
set(includeDirectory  include)
set(targetName        vulkan-tutorial)
set(targetVersion     1.0.0)
project(${targetName} VERSION ${targetVersion})
file(GLOB src
${sourceDirectory}/*.cpp
${sourceDirectory}/**/*.cpp
${sourceDirectory}/**/**/*.cpp
)
add_executable(${targetName} ${src})
target_include_directories(${targetName} PRIVATE ${includeDirectory})

以下是此项目在带有筛选器的Visual Studio中的外观。或者不使用VS过滤器。

我可以创建新的文件,但它们不会降落在我想要的地方。我想要实现的行为非常简单:我想看到我的项目的根目录和它的"src";以及";包括";文件夹。我希望能够右键单击它们并创建新的文件夹和文件。然后我希望Visual Studio在选定的文件夹中创建它们。就像在每个普通的文件资源管理器中一样。

我可以想象的一个解决方案是生成不在";构建文件夹";,但在项目本身的根目录中,这显然是一个可怕的解决方案,并导致项目结构的污染。

总结-这是我想要的结果(现在我只能通过在根中生成项目来实现(。但是所有的构建文件都应该位于相应的";构建";文件夹。

我还想补充一点,我试图为CMake使用不同的函数,将我的文件分组在一起,但我最终得到了很多反映我在磁盘上的项目结构的过滤器。当然,我仍然无法动态添加新的文件夹和文件。

我感谢你的帮助。提前谢谢。

只需在visual studio中使用Open Folder选项。

这将打开目录并使用CMake自动配置项目。它将显示独立于CMake配置结构的树。

微软在Visual Studio中有一个CMake项目页面,它解释了如何在Visual Studio 中正确导入CMake