cmake-vcpkg — правило для GitHub Copilot: сборка C++ и пакеты
Правило задаёт Copilot контекст проекта на C++: vcpkg в режиме манифеста, настройки через CMakePresets.json и сборка под MSVC, Clang и GCC.
.github/instructions/cmake-vcpkg.instructions.mdЧто делает cmake-vcpkg
Правило подключается к файлам *.cmake, CMakeLists.txt, *.cpp, *.h и *.hpp и меняет то, что Copilot предлагает в этих файлах. Главное: проект использует vcpkg в режиме манифеста, поэтому советы вида vcpkg install library не сработают — зависимости описываются в манифесте, а не ставятся командой вручную.
Настройки Copilot советует задавать через CMakePresets.json, а не разбрасывать по CMakeLists.txt. Если предлагаемая переменная зависит от политик CMake, правило требует упомянуть эти политики — иначе значение может вести себя иначе, чем ожидается. Проект должен собираться под MSVC, Clang и GCC, так что советы в духе «только для одной платформы» тут не подходят.
Отдельный пункт про OpenCV: в примерах с чтением файлов правило требует абсолютные пути. То есть video.open("C:/project/file.mp4"), а не video.open("file.mp4") — иначе пример развалится при запуске из другой рабочей папки.
Какие задачи решает
- объяснить Copilot, что vcpkg работает в режиме манифеста
- получить советы по зависимостям без ручного
vcpkg install - вынести настройки сборки в
CMakePresets.json - учесть политики CMake при правке переменных
- писать примеры с OpenCV, которые не зависят от рабочей папки
Примеры запросов агенту
- добавь в проект зависимость от библиотеки через манифест vcpkg
- перенеси эти переменные сборки в
CMakePresets.json - проверь, что пример с OpenCV использует абсолютный путь к файлу
Как установить cmake-vcpkg
Вручную: положить файлы
.github/instructions/cmake-vcpkg.instructions.mdПоле applyTo задаёт, к каким файлам применять
Вручную: положить файлы
.claude/rules/cmake-vcpkg.mdПоле paths во frontmatter ограничивает файлы: applyTo из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.cursor/rules/cmake-vcpkg.mdcВо frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится
Вручную: положить файлы
.devin/rules/cmake-vcpkg.mdВручную: положить файлы
.clinerules/cmake-vcpkg.mdПо шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать
Вопросы о cmake-vcpkg
Как установить cmake-vcpkg в GitHub Copilot?
Положите файл по пути .github/instructions/cmake-vcpkg.instructions.md в репозитории. Правило подхватится для файлов, указанных в applyTo.
Что делает cmake-vcpkg?
Задаёт Copilot контекст C++-проекта: vcpkg в режиме манифеста, настройки через CMakePresets.json, сборка под MSVC, Clang и GCC. Ещё требует упоминать политики CMake и использовать абсолютные пути в примерах с OpenCV.
Почему правило запрещает советы вида vcpkg install?
Проект использует vcpkg в режиме манифеста, поэтому такая команда не даст ожидаемого результата. Зависимости описываются в манифесте.
Исходный текст
cmake-vcpkg.instructions.md · MIT
---
description: 'C++ project configuration and package management'
applyTo: '**/*.cmake, **/CMakeLists.txt, **/*.cpp, **/*.h, **/*.hpp'
---
This project uses vcpkg in manifest mode. Please keep this in mind when giving vcpkg suggestions. Do not provide suggestions like vcpkg install library, as they will not work as expected.
Prefer setting cache variables and other types of things through CMakePresets.json if possible.
Give information about any CMake Policies that might affect CMake variables that are suggested or mentioned.
This project needs to be cross-platform and cross-compiler for MSVC, Clang, and GCC.
When providing OpenCV samples that use the file system to read files, please always use absolute file paths rather than file names, or relative file paths. For example, use `video.open("C:/project/file.mp4")`, not `video.open("file.mp4")`.
© github · MIT · github/awesome-copilot