vcpkg ve Copilot CLI ile C++ Bağımlılık Kurulumu
C++ projelerinde bağımlılık yönetimi, ekiplerin en çok zaman kaybettiği alanlardan biri olmayı sürdürüyor. Microsoft C++ ekibinden Augustin Popa, Pure Virtual C++ 2026 oturumunda bu süreci uçtan uca terminal üzerinden yürüten bir akış tanıtıyor: CMake ve MSVC Build Tools ile derlenen, rastgele yazılım geliştirme alıntılarını biçimli biçimde ekrana basan bir konsol uygulamasını, GitHub Copilot CLI yardımıyla sıfırdan ayağa kaldırıyor. Kod üretimi, uygun açık kaynak kütüphanelerin seçimi, vcpkg kurulumu ve entegrasyonu tamamen komut satırında yürütülüyor.
GitHub Copilot CLI Nedir?
GitHub Copilot CLI, GitHub Copilot’un terminal içinde çalışan komut satırı istemcisidir. Yazara göre bunu üç şekilde kullanabilirsiniz: yapay zeka sohbet arayüzü olarak, yarı otomatik iş atadığınız bir asistan olarak veya paralel alt ajanlarla tamamen otonom biçimde. C++ geliştiricileri için Copilot CLI; kod üretmekten proje derlemeye, hata ayıklamaya kadar terminalde kendi başınıza yapabileceğiniz işlerde yardımcı olur. Oturumları saklayabilir, ortamı eklentiler, özel ajanlar, MCP sunucuları, “skill”ler, kancalar ve modellerle genişletebilir; komut satırından VS Code gibi başka bir ortama sorunsuz geçebilirsiniz.
Ortamı Hazırlamak
Yazının anlattığı adım adım yürüyüşte önce ortam kurulumu yapılıyor:
- GitHub Copilot CLI, tercih ettiğiniz paket yöneticisi veya bir betik ile kuruluyor.
- Sistemde CMake ve bir derleyicinin hazır olması gerekiyor; demoda Windows üzerinde CMake + MSVC Build Tools kullanılıyor.
- Yazar, Windows tarafında renk kodlu ve özel adlandırılabilir sekmeleri desteklediği için Windows Terminal’i öneriyor.
- Çalışma klasörü oluşturulup (örneğin
quotecli), içinedata/quotes.jsondosyası ekleniyor. - Terminalde
copilotkomutuyla oturum başlatılıyor.
Ardından C++ tarafında semantik zekâyı devreye almak için CLI içinden /plugin install cpp-language-server@copilot-plugins komutuyla C++ dil sunucusu eklentisi kuruluyor. Bu eklentinin ayrıntıları için kaynak yazıda ilgili blog gönderisine bağlantı veriliyor.
Model seçimi /model ile yapılıyor; yazar başlangıç için “Auto” seçeneğini öneriyor, çünkü Copilot görev başına uygun modeli seçerek token maliyeti ve doğruluk arasında denge kuruyor.
Opsiyonel olarak, yazarın kendi geliştirdiği bir vcpkg custom skill kurulabiliyor. Bu skill, Copilot’a vcpkg ile çalışırken ek yönlendirmeler sağlıyor ve daha ileri senaryoları daha kuralcı biçimde ele almanıza olanak tanıyor. Yazar, bu skill’in Microsoft tarafından resmi olarak bakımının yapılmadığını, özelleştirilebilir bir başlangıç noktası olarak sunulduğunu özellikle belirtiyor. Kurulum, dosyayı indirdikten sonra /skill add local-path-to-skill komutuyla yapılıyor.
Plan Modu ile Başlamak
Copilot CLI’da Shift+Tab ile Plan Mode‘a geçiliyor. Bu mod, çok adımlı ve karmaşık işlerde Copilot’un önce ne yapacağını sizinle konuşmasını sağlıyor; böylece uygulamaya geçmeden önce plana müdahale edebiliyorsunuz.
Demoda kullanılan istem, uygulamanın ne yapması gerektiğini net biçimde tanımlıyor: data/quotes.json içinden rastgele bir yazılım geliştirme alıntısını biçimli olarak yazdıran bir C++ konsol uygulaması; CMake ve MSVC ile derleme; vcpkg üzerinden uygun açık kaynak kütüphaneleri; CMake ve MSVC kurulu, vcpkg ise Copilot tarafından bu dizine indirilip yapılandırılacak. Ayrıca uygun kütüphaneleri seçmek de Copilot’a bırakılıyor.
Bu istemin ardından Copilot; ne inşa edeceğini, projenin nasıl yapılandırılacağını, uygulamanın beklenen davranışını ve README dâhil dokümantasyonu içeren bir plan üretiyor.
Planı Onaylamak ve İnşa Etmek
Plan tatmin ediciyse “Accept plan and build on default permissions” seçilerek Copilot çalışmaya başlıyor; bu modda komut çalıştırma ve dosya değişiklikleri için izin istemeyi sürdürüyor. Daha otonom bir akış istiyorsanız “Accept plan and build on autopilot” seçeneği mevcut. Plan üzerinde değişiklik önerip yineleme yaparak istediğiniz noktaya da gelebiliyorsunuz.
Beklenen sonuç: Copilot kütüphane önerilerini oluşturuyor, CMake projesini kuruyor, vcpkg’i depo içinde kurup başlatıyor, vcpkg.json manifestini yazıyor ve hata olmadığını doğrulamak için projeyi derliyor. Sistemde kurulu olana göre uygun CMake üretecini seçmek gibi konularda kendi çalışmasını birden fazla kez gözden geçirebiliyor.
Sorularla Kararları Netleştirmek
Kaynak yazı, Copilot’a çalışması sırasında verdiği kararları açıklattırmayı öneriyor. Örnek istemler:
- Seçtiğin her kütüphaneyi, çözdüğü sorunu ve bu uygulamada nerede kullanıldığını açıkla.
- Belirli bir kütüphane için benzer bir bağlamda kullanılacak örnek şablon kodu ver.
- Bu projeyi nasıl derleyip çalıştırırım?
Alınan cevaplara göre Copilot’a ek değişiklikler yaptırıp yaptırmayacağınıza karar veriyorsunuz.
Uygulamayı Derlemek ve Çalıştırmak
Test aşamasında farklı bir terminal sekmesinde şu komutlar çalıştırılıyor:
cmake --preset msvc-debug
cmake --build --preset build-debug
.\build\msvc-debug\bin\Debug\quotecli.exe
Program başarıyla çalıştığında, her çağrıda mevcut alıntılar listesinden rastgele bir tanesi ekrana biçimli biçimde basılıyor.
Yeniden Üretilebilir Derlemeler için Baseline
Yazar, tekrarlanabilir (reproducible) derlemeler elde etmek için bağımlıların vcpkg’in son resmi sürümüne sabitlenmesini örnek bir prompt ile gösteriyor. Copilot bu isteğe karşılık vcpkg.json dosyasına makul bir builtin-baseline alanı ekliyor ve bunun ne anlama geldiğini, sonrasında nasıl bakım yapılacağını da anlatıyor. Bu yaklaşım; bağımlıları sabitlerken, ileride ABI kırıcı değişikliklere yol açmadan güncelleme esnekliğini de koruyor.
Ortaya Çıkan Proje Yapısı
Tüm bu adımların ardından proje şu şekilde bir yerleşime kavuşuyor:
quotecli
├── build
├── data
│ └── quotes.json
├── src
│ └── main.cpp
├── vcpkg
│ └── <vcpkg dosyaları>
├── CMakeLists.txt
├── CMakePresets.json
├── README.md
└── vcpkg.json
Bileşenlerin görevleri şöyle özetleniyor:
vcpkg.json: bağımlılık listesi vebuiltin-baseline.CMakeLists.txt:find_package(...)çağrıları ve hedeflere bağlanmış kütüphaneler.CMakePresets.json: hazır konfigürasyon ve derleme profilleri.src/main.cpp: uygulamanın kaynak kodu.data/quotes.json: alıntıların bulunduğu veri dosyası.
Demonun ürettiği CMakeLists.txt‘de dikkat çekici birkaç nokta var: C++20 standardı zorunlu tutuluyor, nlohmann_json, fmt ve rang için find_package(... CONFIG REQUIRED) çağrıları yapılıyor ve hedef bunlara bağlanıyor. MSVC için /W4 /permissive-, diğer derleyiciler içinse -Wall -Wextra -Wpedantic uyarı bayrakları ayarlanıyor. Ayrıca POST_BUILD aşamasında data klasörü çıktı dizinine kopyalanıyor, böylece çalışma zamanında quotes.json hep uygulamanın yanında bulunuyor.
CMakePresets.json tarafında ise iki konfigürasyon presetı (msvc-debug ve msvc-release) tanımlanmış; her ikisi de vcpkg’in toolchain dosyasını (vcpkg/scripts/buildsystems/vcpkg.cmake) kullanıyor ve VCPKG_MANIFEST_MODE açık geliyor. Böylece vcpkg.json‘daki bildirimler, olağan configure/build akışının bir parçası olarak otomatik geri yükleniyor ve elle include/link yolu tanımlamaya gerek kalmıyor.
Neden Bu Akış İşe Yarıyor?
Kaynak yazının vurguladığı ana kazanımlar şunlar:
- Copilot; vcpkg dâhil gerekli araçların kurulumundan, uygun kütüphanelerin belirlenmesine ve projeye entegrasyonuna kadar birden fazla adımı üstlenebiliyor.
- vcpkg, manuel bağımlılık kablolamasını ortadan kaldırıyor: bağımlıları
vcpkg.json‘da bir kez tanımlıyorsunuz, restore adımı olağan configure/build sürecinin parçası oluyor. - Belge ile terminal arasında sürekli bağlam değiştirmeden çok adımlı kurulum işini tek yerden yürütebiliyorsunuz.
builtin-baselinegibi ayrıntılar için Copilot’a ek talimatlar vererek hem sabitlenmiş hem de ileride kontrollü biçimde güncellenebilen bir bağımlılık grafiği kurabiliyorsunuz.
Yürüyüş ilk istemden başarılı bir derlemeye kadar tamamen boş bir klasörden başlıyor, terminalde kalıyor ve elle yönetilen include/link yollarından kaçınıyor.
Kaynaklar ve İleri Okuma
- C++ Dependencies Without the Headache: vcpkg + Copilot CLI – Augustin Popa (C++ Team Blog)
- GitHub Copilot CLI resmi sayfası
- Streamline C++ code intelligence setup in Copilot CLI
- awesome-copilot deposundaki vcpkg skill
- Yazarın vcpkg skill fork’u
- GitHub Copilot Agent Skills dokümantasyonu
- vcpkg resmi sitesi
- Visual Studio
- C++’ta Copilot’u Konuşturmak: VS Code İçin Akıllı İpuçları
- Copilot CLI ile GitHub Pages’e Custom Domain







Yorum gönder