- Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.
- Введение.
- Установка в Linux.
- Установка в Windows.
- Как настроить cmakelists txt
- Структура CMakeLists.txt
- Автогенерация проекта для Visual Studio (Windows)
- Зависимости между библиотеками и приложениями
- Выбор стандарта и диалекта C++
- Функции в CMake
- Добавление исходников к цели с target_sources
- Интерфейс к утилитам командной строки
- Функция find_package
- Проекты CMake в Visual Studio
- Установка
- Интеграция с IDE
- Открытие существующего кэша
- Дополнительные способы устранения неполадок с кэшем CMake
- Создание проектов CMake
- Отладка проектов CMake
- «Только мой код» для проектов CMake
- Интеграция с vcpkg
- Отзывы о настройке конфигурации
- Изменение файлов CMakeLists.txt
- Шаг настройки CMake
- Устранение ошибок кэша CMake
- Запуск CMake из командной строки
- Установка
- Интеграция с IDE
- Импорт существующего кэша
- Импорт существующего кэша
- Создание проектов CMake
- Отладка проектов CMake
- Изменение файлов CMakeLists.txt
- Шаг настройки CMake
- Устранение ошибок кэша CMake
- Компиляция одного файла
- Запуск CMake из командной строки
Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.
Введение.
Многие, кто начинал создавать собственные программы, пользовался какой-либо системой сборки. В общем, система сборки – это набор инструментов, облегчающий работу с компилятором. Это включает в себя компиляцию, линковку, установку, а также сбор исходных файлов для передачи их компилятору и слежение за зависимостями. Также современные системы сборки облегчают работу с библиотеками, позволяют создавать переносимые проекты и выполняют ещё массу других вкусностей. Эта статья посвящена популярной системе сборки CMake и расскажет, как правильно её установить и настроить, а также будет рассмотрен простой пример её использования. Она рассчитана на тех, что хоть немного знаком с понятиями make, Makefile, компиляция, линковка.
Установка в Linux.
Для популярных дистрибутивов Linux типа Debian, Gentoo, Fedora и т.д. CMake давно лежит в официальных репозиториях. Нам нужно всего лишь установить пакет cmake с помощью менеджера пакетов. Как правило, он устанавливается в системные директории, и необходимости править переменные окружения нету. Можете проверить её работоспособность, выполнив
Если же в репозитории нет такого пакета, то можно его собрать вручную. Скачиваем Unix/Linux Source, например, cmake-3.5.0-rc3.tar.gz, распаковываем и собираем:
Если нет необходимости устанавливать в системную /usr директорию, можно в аргументе —prefix прописать нужный корень установки. По умолчанию, без явного указания —prefix, установка будет произведена в /usr/local. -j используется для ускорения сборки, например, на 4-х ядерном процессоре можно указать -j4, и сборка будет вестись параллельно в 4 потока.
Установка в Windows.
Для Windows на сайте CMake лежит установочный файл msi. Рекомендую при установке отметить галочку добавления пути в переменные окружения PATH для всех пользователей. Тогда, после перелогинивания, CMake будет доступен из любого места. Проверить можно, открыв cmd и выполнив тот же
Источник
Как настроить cmakelists txt
На первом шаге проект нужно сконфигурировать, то есть создать финальный скрипт сборки, запустив cmake в будущем каталоге сборки.
На втором шаге нужно запустить финальный скрипт. Не вызывайте make ! Утилита cmake сделает это сама:
Структура CMakeLists.txt
В начале главного файла CMakeLists.txt ставят метаинформацию о минимальной версии CMake и названии проекта:
Затем следует список инструкций, служащих для вычисления различных переменных, создания целей сборки, подключения проектов из подкаталогов и так далее. Например, подключить дополнительный CMakeLists.txt из подкаталога можно так:
Целью может стать исполняемый файл, собираемый из исходного кода
Целью также может быть библиотека, статическая или динамическая.
Автогенерация проекта для Visual Studio (Windows)
Если используется Visual C++, то путь немного другой: на шаге конфигурирования создаётся проект для Visual Studio, который затем можно собрать из IDE либо так же из командной строки.
Созданный проект Visual Studio нельзя изменять и использовать постоянно, потому что при генерации проекта используются абсолютные пути и другие неприемлемые для постоянной работы вещи.
Если проект был сконфигурирован успешно, то в каталоге ../myapp-build появятся автоматически сгенерированный BUILD_ALL.sln и проекты для Visual Studio. Их можно открыть к IDE, либо собрать из командной строки с помощью cmake. Названия опций говорят сами за себя:
Зависимости между библиотеками и приложениями
Не используйте директивы include_directories , add_definitions , add_compile_options ! Они меняют глобальные настройки для всех целей, это создаёт проблемы при масштабировании.
- Используйте target_link_libraries для добавления статических и динамических библиотек, от которых зависит цель
- Используйте target_include_directories вместо include_directories для добавления путей поиска заголовков, от которых зависит цель
- Используйте target_compile_definitions вместо add_definitions для добавления макросов, с которыми собирается цель
- Используйте target_compile_options для добавления специфичных флагов компилятора, с которыми собирается цель
Вы можете выбирать область видимости настройки:
- PUBLIC делает настройку видимой для текущей цели и для всех зависящих от неё целей
- PRIVATE делает настройку видимой только для текущей цели
- INTERFACE делает настройку видимой только для всех зависящих от неё целей
Пример использования областей видимости:
Схема зависимостей условного проекта:
Выбор стандарта и диалекта C++
Для настройки стандарта и флагов языка C++ не добавляйте флаги напрямую!
В CMake версии 3.8+ вы можете прямо потребовать включить нужный стандарт:
В CMake версии до 3.7 включительно можно использовать set_target_properties (если не работает, то у вас слишком старый CMake):
Для разработчиков библиотек есть более тонкий контроль над возможностями языка:
Функции в CMake
CMake позволяет объявлять функции командами function(name) / endfunction() и макросы командами macro(name) / endmacro() . Предпочитайте функции, а не макросы, т.к. у функций есть своя область видимости переменных, а у макросов — нет.
Добавление исходников к цели с target_sources
Лучше добавлять специфичные исходники с помощью target_sources, а не с помощью дополнительных переменных.
Интерфейс к утилитам командной строки
Функция find_package
Функция find_package принимает имя библиотеки как аргумент и обращается к CMake, чтобы найти скрипт для настройки переменных данной библиотеки. В итоге при сборке либо возникает ошибка из-за того что пакет не найден, либо добавляются переменные, хранящие пути поиска заголовков, имена библиотек для компоновщика и другие параметры.
Пример подключения Boost, вызывающего встроенный в CMake скрипт FindBoost:
Пример подключения библиотеки Bullet с помощью встроенного скрипта FindBullet и компоновки с приложением my_app:
Источник
Проекты CMake в Visual Studio
CMake — это кроссплатформенное средство с открытым кодом, которое позволяет определять процессы сборки, выполняемые на множестве платформ. В этой статье предполагается, что вы уже знакомы с CMake. См. документацию по CMake для получения дополнительных сведений. Рекомендуем воспользоваться учебником по CMake в качестве отправной точки.
За последние несколько выпусков была улучшена интеграция CMake с Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Компонент Средства CMake C++ для Windows использует функцию Открыть папку, чтобы напрямую использовать файлы проекта CMake (например, CMakeLists.txt ) для IntelliSense и просмотра. Поддерживаются генераторы Visual Studio и Ninja. Если вы используете генератор Visual Studio, он создает временный файл проекта и передает его в MSBuild. Однако проект никогда не загружается для IntelliSense или просмотра. Также можно импортировать существующий кэш CMake.
Установка
Средства C++ CMake для Windows устанавливаются в рамках рабочих нагрузок Разработка классических приложений на C++ и Разработка приложений для Linux на C++ . Дополнительные сведения см. в статье Кроссплатформенные проекты CMake.
Интеграция с IDE
Если выбрать Файл > Открыть > Папка, чтобы открыть папку, содержащую файл CMakeLists.txt , происходит следующее:
Visual Studio добавляет пункт CMake в меню Проект с командами для просмотра и редактирования сценариев CMake.
Обозреватель решений отображает структуру папок и файлы.
Visual Studio запускает CMake и создает файл кэша CMake ( CMakeCache.txt ) для конфигурации по умолчанию (x64-Debug). В окне вывода отображается командная строка CMake, а также прочие выходные данные CMake.
В фоновом режиме Visual Studio индексирует исходные файлы для поддержки функций IntelliSense, просмотра информации, рефакторинга и т. д. По мере работы Visual Studio отслеживает изменения в редакторе, а также на диске, чтобы синхронизировать индекс с источниками.
Вы можете открыть папки, содержащие любое количество проектов CMake. Visual Studio обнаруживает и настраивает все «корневые» файлы CMakeLists.txt в рабочей области. Операции CMake (настройка, сборка, отладка), C++ IntelliSense и просмотр доступны для всех проектов CMake в вашей рабочей области.
Вы также можете просмотреть проекты, логически упорядоченные по целевым объектам. Выберите Представление целевых объектов из раскрывающегося списка на панели инструментов в обозревателе решений:
Нажмите кнопку Показать все файлы в верхней части Обозревателя решений, чтобы просмотреть все выходные данные, созданные CMake, в папках out/build/\ .
Visual Studio использует файл конфигурации с именем CMakeSettings.json . Этот файл также позволяет определять и хранить несколько конфигураций сборки и с удобством переключаться между ними в IDE. Конфигурация — это конструкция Visual Studio, которая инкапсулирует параметры, относящиеся к конкретному типу сборки. Параметры используются для настройки параметров командной строки по умолчанию, которые Visual Studio передает в CMake. Здесь также можно указать прочие параметры CMake и определить любые дополнительные переменные. Все параметры записываются в кэш CMake как внутренние или внешние переменные. В Visual Studio 2019 редактор параметров CMake предоставляет удобный способ изменения параметров. Дополнительные сведения см. в статье Настраиваемые параметры CMake.
Один параметр, intelliSenseMode , не передается в CMake и используется только в Visual Studio.
Используйте файл CMakeLists.txt в каждой папке проекта так же, как в любом проекте CMake. Вы можете указывать исходные файлы, находить библиотеки, устанавливать параметры компилятора и компоновщика и указывать другие сведения о системе сборки.
При передаче аргументов для исполняемого файла во время отладки, можно использовать другой файл с именем launch.vs.json . В некоторых сценариях Visual Studio автоматически создает эти файлы. Вы можете изменить их вручную или даже создать файл самостоятельно.
Для других типов проектов «Открыть папку» используются два дополнительных файла JSON: CppProperties.json и tasks.vs.json . Ни один из них не связан с проектами CMake.
Открытие существующего кэша
При открытии существующего файла кэша CMake ( CMakeCache.txt ) Visual Studio не пытается управлять кэшем и деревом сборки. Настраиваемые или предпочтительные инструменты имеют полный контроль над тем, как CMake настраивает проект. Чтобы открыть существующий кэш в Visual Studio, выберите Файл > Открыть > CMake. Затем перейдите к существующему файлу CMakeCache.txt .
Существующий кэш CMake можно добавить в открытый проект. Этот процесс аналогичен добавлению новой конфигурации. Дополнительные сведения см. в записи блога об открытии существующего кэша в Visual Studio.
По умолчанию для работы с существующим кэшем используется режим cmake-server , который был удален из CMake в версии 3.20. Чтобы продолжить использовать эти функции в Visual Studio 2019 версии 16.10 и выше, выполните одно из следующих действий:
- Установите CMake версии 3.19 или ниже вручную. Затем в конфигурации существующего кэша задайте свойство cmakeExecutable так, чтобы использовать эту версию CMake.
- В конфигурации существующего кэша задайте свойство cacheGenerationCommand , чтобы позволить Visual Studio запрашивать нужные файлы для файлового API-интерфейса CMake. Дополнительные сведения об этом свойстве см. в Справочнике по CMakeSettings.json.
- Используйте файл запроса, чтобы запрашивать файлы для файлового API-интерфейса CMake при создании кэша перед его открытием в Visual Studio. Инструкции по файлу запроса см. в следующем разделе Дополнительные способы устранения неполадок с кэшем CMake.
Дополнительные способы устранения неполадок с кэшем CMake
Visual Studio использует API на основе файлов в CMake (версия 3.14 и более поздние) для заполнения редактора сведениями, связанными со структурой проекта. Дополнительные сведения см. в записи блога команды C++, посвященной использованию рабочих областей с несколькими корнями и API на основе файлов.
Перед созданием кэша CMake вашим пользовательским или предпочтительным средствам может потребоваться создать файл запроса с именем .cmake/api/v1/query/client-MicrosoftVS/query.json в выходной папке сборки (папке, содержащей CMakeCache.txt ). Файл запроса должен содержать следующее содержимое:
Когда пользовательские или предпочтительные средства создают ваш кэш, CMake помещает файлы в расположение .cmake/api/v1/response , которое Visual Studio использует для заполнения редактора сведениями, связанными со структурой вашего проекта.
Создание проектов CMake
Для создания проекта CMake доступны следующие варианты:
На панели инструментов «Общие» найдите раскрывающийся список Конфигурация. По умолчанию, возможно, отображается «x64-Debug». Выберите предпочтительную конфигурацию и нажмите клавишу F5 или щелкните кнопку Выполнить (с зеленым треугольником) на панели инструментов. Сначала автоматически выполняется сборка проекта как решения Visual Studio.
Щелкните CMakeLists.txt правой кнопкой мыши и выберите пункт Сборка. Если в структуре папок имеется несколько целевых объектов, можно выбрать сборку их всех или только одного из них.
В главном меню выберите Сборка > Собрать все (нажмите клавишу F7 или клавиши CTRL+SHIFT+B). Убедитесь, что целевой объект CMake уже выбран в раскрывающемся списке Автозапускаемый элемент на панели инструментов Общие.
Как и следовало ожидать, результаты сборки отображаются в окне вывода и списке ошибок.
В папке с несколькими целевыми объектами сборки можно указать целевой объект CMake для сборки: выберите элемент Сборка в меню CMake или контекстном меню CMakeLists.txt , чтобы указать целевой объект CMake для сборки. Нажмите клавиши CTRL+SHIFT+B в проекте CMake, чтобы выполнить сборку текущего активного документа.
Отладка проектов CMake
Для отладки проекта CMake выберите требуемую конфигурацию и нажмите клавишу F5 или кнопку Выполнить на панели инструментов. Если для кнопки Выполнить отображается сообщение «Выбрать элемент запуска», выберите стрелку раскрывающегося списка. Выберите нужный целевой объект. (В проекте CMake параметр «Текущий документ» допустим только для файлов CPP.)
Команды Выполнить или F5 сначала выполняют сборку проекта, если с момента предыдущей сборки были внесены изменения. Изменения в CMakeSettings.json вызывают повторное создание кэша CMake.
Вы можете настроить сеанс отладки CMake, задав свойства в файле launch.vs.json . Дополнительные сведения см. в разделе Настройка сеансов отладки CMake.
«Только мой код» для проектов CMake
При сборке для Windows с помощью компилятора MSVC в проектах CMake поддерживается отладка «Только мой код». Чтобы изменить параметр «Только мой код», перейдите в раздел Сервис > Параметры > Отладка > Общие.
Интеграция с vcpkg
Если вы установили vcpkg, то проекты CMake, открытые в Visual Studio, автоматически интегрируют файл цепочки инструментов vcpkg. Это означает, что для использования vcpkg с проектами CMake не требуется дополнительная настройка. Эта поддержка работает как для локальных установок vcpkg, так и для vcpkg в удаленных системах, которые вы намерены использовать. Это поведение автоматически отключается при указании любых других цепочек инструментов в конфигурации параметров CMake.
Отзывы о настройке конфигурации
По умолчанию большинство сообщений конфигурации подавляются, если нет ошибки. Чтобы просмотреть все сообщения, включите эту функцию в разделе Средства > Параметры > CMake.
Изменение файлов CMakeLists.txt
Чтобы изменить файл CMakeLists.txt , щелкните его правой кнопкой мыши в обозревателе решений и выберите пункт Открыть. Если вы вносите изменения в файл, отображается желтая строка состояния, которая сообщает о предстоящем обновлении IntelliSense. Это дает возможность отменить операцию обновления. Дополнительные сведения о CMakeLists.txt см. в документации по Windows.
Сразу после сохранения файла автоматически перезапускается этап настройки, отображающий информацию в окне вывода. Ошибки и предупреждения отображаются в списке ошибок или окне вывода. Дважды щелкните ошибку в окне Список ошибок, чтобы перейти к строке с ошибкой в CMakeLists.txt .
Шаг настройки CMake
При внесении существенных изменений в CMakeSettings.json или файлы CMakeLists.txt Visual Studio автоматически перезапускает шаг настройки CMake. Если шаг настройки завершается без ошибок, собранные данные становятся доступны в C++ IntelliSense и языковых службах. Они также используются в операциях сборки и отладки.
Устранение ошибок кэша CMake
Если вам нужны дополнительные сведения о состоянии кэша CMake для диагностики проблемы, откройте главное меню Проект или контекстное меню CMakeLists.txt в обозревателе решений, чтобы выполнить одну из следующих команд:
Просмотреть кэш открывает файл CMakeCache.txt из корневой папки сборки в редакторе. (Любые внесенные здесь изменения в CMakeCache.txt удаляются при очистке кэша. Сведения о внесении изменений, сохраняемых после очистки кэша, см. в разделе Настройка параметров CMake.)
Открыть папку кэша открывает окно проводника с корневой папкой сборки.
Очистить кэш удаляет корневую папку сборки, чтобы следующий шаг настройки CMake начинался с очистки кэша.
Создать кэш принудительно создает шаг для выполнения, даже если Visual Studio считает среду актуальной.
Вы можете отключить автоматическое создание кэша в диалоговом окне Сервис > Параметры > CMake > Общие.
Запуск CMake из командной строки
Если вы установили CMake из Visual Studio Installer, можете запустить это средство из командной строки, сделав следующее:
Запустите соответствующий файл vsdevcmd.bat (x86/x64). Дополнительные сведения см. в статье Сборка из командной строки.
Перейдите в папку выходных данных.
Запустите CMake, чтобы создать или настроить приложение.
В Visual Studio 2017 существует широкая поддержка CMake, включая кроссплатформенные проекты CMake. Компонент Инструменты Visual C++ для CMake использует функцию Открыть папку, чтобы позволить интегрированной среде разработки использовать файлы проекта CMake (например, CMakeLists.txt ) для IntelliSense и просмотра. Поддерживаются генераторы Visual Studio и Ninja. Если вы используете генератор Visual Studio, он создает временный файл проекта и передает его в MSBuild. Однако проект никогда не загружается для IntelliSense или просмотра. Также можно импортировать существующий кэш CMake.
Установка
Средства Visual C++ для CMake устанавливаются в рамках рабочих нагрузок Разработка классических приложений на C++ и Разработка приложений для Linux на C++ .
Интеграция с IDE
Если выбрать Файл > Открыть > Папка, чтобы открыть папку, содержащую файл CMakeLists.txt , происходит следующее:
Visual Studio добавляет пункт CMake в главное меню с командами для просмотра и редактирования сценариев CMake.
Обозреватель решений отображает структуру папок и файлы.
Visual Studio запускает CMake и при необходимости создает кэш CMake для конфигурации по умолчанию, которой является отладка x86. В окне вывода отображается командная строка CMake, а также прочие выходные данные CMake.
В фоновом режиме Visual Studio индексирует исходные файлы для поддержки функций IntelliSense, просмотра информации, рефакторинга и т. д. По мере работы Visual Studio отслеживает изменения в редакторе, а также на диске, чтобы синхронизировать индекс с источниками.
Вы можете открыть папки, содержащие любое количество проектов CMake. Visual Studio обнаруживает и настраивает все «корневые» файлы CMakeLists.txt в рабочей области. Операции CMake (настройка, сборка, отладка), C++ IntelliSense и просмотр доступны для всех проектов CMake в вашей рабочей области.
Вы также можете просмотреть проекты, логически упорядоченные по целевым объектам. Выберите Представление целевых объектов из раскрывающегося списка на панели инструментов в обозревателе решений:
Visual Studio использует файл с именем CMakeSettings.json для хранения переменных среды или параметров командной строки для CMake. CMakeSettings.json также позволяет определить и сохранить несколько конфигураций сборки CMake. Вы можете легко переключаться между ними в интегрированной среде разработки.
В противном случае используйте CMakeLists.txt так же, как в любом проекте CMake, чтобы указывать исходные файлы, находить библиотеки, устанавливать параметры компилятора и компоновщика и указывать другие сведения о системе сборки.
Если вам нужно передавать аргументы для исполняемого файла во время отладки, можно использовать другой файл с именем launch.vs.json . В некоторых сценариях Visual Studio автоматически создает эти файлы. Вы можете изменить их вручную или даже создать файл самостоятельно.
Для других типов проектов «Открыть папку» используются два дополнительных файла JSON: CppProperties.json и tasks.vs.json . Ни один из них не связан с проектами CMake.
Импорт существующего кэша
Когда вы импортируете существующий файл CMakeCache.txt , Visual Studio автоматически извлекает настраиваемые переменные и создает на их основе предварительно заполненный файл CMakeSettings.json . Исходный кэш никак не изменяется. Его по-прежнему можно использовать из командной строки или с помощью любого средства или интегрированной среды разработки, которые использовались для его создания. Новый файл CMakeSettings.json помещается рядом с корневым файлом проекта CMakeLists.txt . Visual Studio создает кэш на основе файла параметров. Вы можете переопределить автоматическое создание кэша в диалоговом окне Сервис > Параметры > CMake > Общие.
Импортируется не все содержимое кэша. Такие свойства, как генератор и расположение компиляторов, заменяются значениями по умолчанию, хорошо совместимыми с данной интегрированной средой разработки.
Импорт существующего кэша
В главном меню выберите Файл > Открыть > CMake:

Эта команда открывает мастер импорта CMake из кэша.
Перейдите к файлу CMakeCache.txt , который хотите импортировать, и нажмите кнопку ОК. Отображается мастер импорта CMake из кэша:
По завершении работы мастера вы увидите новый файл CMakeCache.txt в обозревателе решений рядом с корневым файлом CMakeLists.txt в проекте.
Создание проектов CMake
Для создания проекта CMake доступны следующие варианты:
На панели инструментов «Общие» найдите раскрывающийся список Конфигурация. По умолчанию, скорее всего, отображается «Linux-Debug» или «x64-Debug». Выберите предпочтительную конфигурацию и нажмите клавишу F5 или щелкните кнопку Выполнить (с зеленым треугольником) на панели инструментов. Сначала автоматически выполняется сборка проекта как решения Visual Studio.
Щелкните CMakeLists.txt в обозревателе решений и выберите Сборка в контекстном меню. Если в структуре папок имеется несколько целевых объектов, можно выбрать сборку их всех или только одного из них.
В главном меню выберите Сборка > Собрать решение (нажмите клавишу F7 или клавиши CTRL+SHIFT+B). Убедитесь, что целевой объект CMake уже выбран в раскрывающемся списке Автозапускаемый элемент на панели инструментов Общие.
Вы можете настраивать конфигурации сборки, переменные среды, аргументы командной строки и другие параметры в файле CMakeSettings.json . Это позволяет вносить изменения, не изменяя файл CMakeLists.txt . Дополнительные сведения см. в статье Настраиваемые параметры CMake.
Как и следовало ожидать, результаты сборки отображаются в окне вывода и списке ошибок.
В папке с несколькими целевыми объектами сборки можно указать целевой объект CMake для сборки: выберите элемент Сборка в меню CMake или контекстном меню CMakeLists.txt , чтобы указать целевой объект CMake для сборки. Нажмите клавиши CTRL+SHIFT+B в проекте CMake, чтобы выполнить сборку текущего активного документа.
Отладка проектов CMake
Для отладки проекта CMake выберите требуемую конфигурацию и нажмите клавишу F5. Или нажмите кнопку Выполнить на панели инструментов. Если для кнопки Выполнить отображается сообщение «Выбрать элемент запуска», выберите стрелку раскрывающегося списка и выберите целевой объект, который требуется запустить. (В проекте CMake параметр «Текущий документ» допустим только для файлов CPP.)
Команды Выполнить или F5 сначала выполняют сборку проекта, если с момента предыдущей сборки были внесены изменения.
Вы можете настроить сеанс отладки CMake, задав свойства в файле launch.vs.json . Дополнительные сведения см. в разделе Настройка сеансов отладки CMake.
Изменение файлов CMakeLists.txt
Чтобы изменить файл CMakeLists.txt , щелкните его правой кнопкой мыши в обозревателе решений и выберите пункт Открыть. Если вы вносите изменения в файл, отображается желтая строка состояния, которая сообщает о предстоящем обновлении IntelliSense. Это дает возможность отменить операцию обновления. Дополнительные сведения о CMakeLists.txt см. в документации по Windows.
Сразу после сохранения файла автоматически перезапускается этап настройки, отображающий информацию в окне вывода. Ошибки и предупреждения отображаются в списке ошибок или окне вывода. Дважды щелкните ошибку в окне Список ошибок, чтобы перейти к строке с ошибкой в CMakeLists.txt .
Шаг настройки CMake
При внесении существенных изменений в CMakeSettings.json или файл CMakeLists.txt Visual Studio автоматически перезапускает шаг настройки CMake. Если шаг настройки завершается без ошибок, собранные данные становятся доступны в C++ IntelliSense и языковых службах. Они также используются в операциях сборки и отладки.
Несколько проектов CMake могут использовать одно и то же имя конфигурации CMake (например, x86-Debug). При выборе этой конфигурации все они настраиваются и собираются (в собственной корневой папке сборки). Вы можете отлаживать целевые объекты изо всех проектов CMake, участвующих в этой конфигурации CMake.
Можно ограничить сеансы сборки и отладки подмножеством проектов в рабочей области. Создайте новую конфигурацию с уникальным именем в файле CMakeSettings.json . Затем примените конфигурацию только к этим проектам. При выборе этой конфигурации IntelliSense, а также команды сборки и отладки применяются только для указанных проектов.
Устранение ошибок кэша CMake
Если вам нужны дополнительные сведения о состоянии кэша CMake для диагностики проблемы, откройте главное меню CMake или контекстное меню CMakeLists.txt в обозревателе решений, чтобы выполнить одну из следующих команд:
Просмотреть кэш открывает файл CMakeCache.txt из корневой папки сборки в редакторе. (Любые внесенные здесь изменения в CMakeCache.txt удаляются при очистке кэша. Сведения о внесении изменений, сохраняемых после очистки кэша, см. в разделе Настройка параметров CMake.)
Открыть папку кэша открывает окно проводника с корневой папкой сборки.
Очистить кэш удаляет корневую папку сборки, чтобы следующий шаг настройки CMake начинался с очистки кэша.
Создать кэш принудительно создает шаг для выполнения, даже если Visual Studio считает среду актуальной.
Вы можете отключить автоматическое создание кэша в диалоговом окне Сервис > Параметры > CMake > Общие.
Компиляция одного файла
Для сборки отдельного файла в проекте CMake щелкните правой кнопкой мыши файл в обозревателе решений. Выберите Компилировать во всплывающем меню. Вы также можете скомпилировать открытый в редакторе файл через главное меню CMake:
Запуск CMake из командной строки
Если вы установили CMake из Visual Studio Installer, можете запустить это средство из командной строки, сделав следующее:
Запустите соответствующий файл vsdevcmd.bat (x86/x64). Дополнительные сведения см. в статье Сборка из командной строки.
Перейдите в папку выходных данных.
Запустите CMake, чтобы создать или настроить приложение.
В Visual Studio 2015 пользователи Visual Studio могут использовать генератор CMake для создания файлов проекта MSBuild, которые интегрированная среда разработки использует для IntelliSense, просмотра и компиляции.
Источник