Как использовать Visual Studio с CMake И сохранить структуру файлов

#c #visual-studio #cmake

Вопрос:

Я использую CMake для создания проектов на C . Тогда я хотел бы использовать Visual Studio в качестве своей среды разработки. Но проблема, с которой я сталкиваюсь, заключается в том, что я не могу правильно структурировать файлы. Вот в чем проблема:

Давайте предположим, что у меня на диске есть следующая файловая структура.

И вот мой 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» и «include». Я хочу иметь возможность щелкнуть их правой кнопкой мыши и создавать новые папки и файлы. Затем я хочу, чтобы Visual Studio создала их внутри выбранной папки. Как это было бы в любом обычном файловом проводнике.

Одним из решений, которое я мог бы себе представить, является создание файлов проекта не внутри «папки сборки», а в корневом каталоге самого проекта, что, очевидно, является ужасным решением и приводит к загрязнению структуры проекта.

Вкратце — вот результат, который я хочу получить (теперь я могу достичь его, только создав проект в корне). Но все файлы сборки должны быть расположены в соответствующей папке «сборка» в корневой папке проекта.

Я также хотел бы добавить, что я пытался использовать различные функции для CMake, которые группируют мои файлы вместе, но в итоге я получил множество фильтров, отражающих структуру моего проекта на диске. Конечно, я все еще не мог динамически добавлять новые папки и файлы.

Я ценю любую помощь. Заранее спасибо.

Ответ №1:

Просто используйте эту Open Folder опцию в visual studio.

Это откроет каталог и автоматически настроит проект с помощью CMake. Он будет отображать дерево независимо от структуры конфигурации CMake.

У Microsoft есть страница проекты CMake в Visual Studio, на которой объясняется, как правильно импортировать проекты CMake в visual studio

Комментарии:

1. Вау, большое спасибо! Именно то, что я искал!