CMake Tools 1.24: CTest Testlerini Editörden Çalıştırın
Visual Studio Code için CMake Tools uzantısının 1.24 sürümü, C++ tarafındaki günlük işleri kısaltan üç değişiklik getiriyor. CTest testlerini editörden çıkmadan çalıştırıp hata ayıklayabiliyorsunuz, preset ile gelen cache değerlerinde yaptığınız düzenlemeler paylaşılan dosyayı bozmadan kullanıcı tarafında saklanıyor, Explorer üzerinden eklediğiniz ya da sildiğiniz kaynak dosyaların CMakeLists.txt içindeki karşılıkları da otomatik güncellenebiliyor. Sürümde güvenilirliğe dönük düzeltmeler de var.
Testleri editörden çalıştırma ve hata ayıklama
CMake Tools, keşfettiği bir CTest testinin kaynak konumunu çözümleyebiliyorsa test tanımının üzerinde artık Run ve Debug CodeLens eylemleri gösteriyor. Project Outline görünümündeki çalıştırma, hata ayıklama ve kaynağa gitme seçenekleri yerinde duruyor, bu eylemler onları tamamlıyor. Bir testi denemek için Testing görünümüne geçmeye gerek kalmıyor; testin üstündeki Run bağlantısı hem derlemeyi hem çalıştırmayı üstleniyor.
Derleme kapsamı tarafında da bir değişiklik var. Test komutu doğrudan bir CMake yürütülebilir hedefine karşılık geliyorsa Run, varsayılan build hedefi yerine yalnızca o hedefi ve bağımlılıklarını derliyor. Kaynakta verilen örnekte proje cart_tests ve shipping_tests adında iki ayrı yürütülebilir dosya içeriyor, Cart.AppliesDiscount testi CodeLens üzerinden çalıştırıldığında yalnızca cart_tests derleniyor, ilgisiz shipping_tests hedefi yeniden derlenmiyor. Çok sayıda test ikilisi barındıran projelerde gereksiz derleme süresini doğrudan kısan bir davranış bu.
Debug eyleminin ön koşulları
Debug eylemi satır içi çalışırken yürütülebilir dosyayı doğrudan başlatıyor, öncesinde bir derleme adımı çalıştırmıyor. Yani hata ayıklamaya başlamadan önce yürütülebilir dosyayı kendiniz derlemiş olmanız, uygun bir C++ hata ayıklayıcısının ve debug adapter’ının da kurulu olması gerekiyor. Project Outline veya Testing görünümü üzerinden test hata ayıklarken launch.json dosyasına ihtiyaç yok.
Preset destekli cache düzenlemeleri artık kullanıcı preset’ine yazılıyor
CMake ile çalışan ekiplerin tanıdığı bir sorun vardı. Bir configure preset’inde tanımlı bir değeri cache üzerinde elle değiştirdiğinizde, bir sonraki configure işlemi bu değişikliği ezebiliyordu. 1.24 ile birlikte Cache Editor, preset kaynaklı değişkenlerde yapılan düzenlemeleri CMakeUserPresets.json içine override olarak kaydediyor.
Bir preset ile configure ettikten sonra CMake: Edit CMake Cache (UI) komutunu açtığınızda, cache değerlerinin yanında yeni bir Source sütunu çıkıyor. Preset kaynaklı girdilerde bu sütun değerin proje preset’inden mi kullanıcı preset’inden mi geldiğini söylüyor, karşılaştırma yapılabiliyorsa Matches preset ya da Changed in cache bilgisini de ekliyor. Preset bilgisi taşımayan satırlar CMake Cache kaynağıyla işaretleniyor.
Kaynaktaki örnekte BUILD_TESTING değişkeni projenin cache-demo preset’inde ON olarak başlıyor. Değer OFF yapılıp SAVE seçildiğinde CMake Tools, cache-demo preset’ini miras alan bir kullanıcı preset’i override’ı yazıyor, ardından bu preset ile configure ediyor. Paylaşılan CMakePresets.json dosyasına dokunulmuyor. BUILD_TESTING kapatılınca örnekteki isteğe bağlı cart_tests hedefi derlemeden çıkıyor, checkout_app yerinde kalıyor.
Düzenlenen satır bundan sonra kaynağını kullanıcı preset’i olarak gösteriyor, aynı oturumda CMake: Configure komutunu yeniden çalıştırmak da BUILD_TESTING değerini kapalı tutuyor. Yalnızca cache’te bulunan, preset karşılığı olmayan değişkenlerdeki düzenlemeler ise eskisi gibi doğrudan cache’e yazılıyor ve kullanıcı preset’ine otomatik eklenmiyor.
Kaynak dosya listelerini güncel tutma
Explorer üzerinden yeni bir kaynak dosya oluşturduğunuzda ya da mevcut bir dosyayı sildiğinizde, CMake Tools ilgili girdiyi CMakeLists.txt içinde sizin yerinize güncelleyebiliyor. Bu davranış desteklenen CMakeLists.txt yapıları ve hedef düzenleriyle sınırlı, ayrıca yapılandırdığınız onay davranışına uyuyor. Hedef seçimi, değişken işleme ve onay isteme cmake.modifyLists.* ayarlarıyla kontrol ediliyor.
Microsoft, bunun genel amaçlı bir CMake betik düzenleyicisi olmadığını açıkça söylüyor. Üretilmiş (generated) ya da karmaşık betiklerde ortaya çıkan değişiklikleri gözden geçirmek gerekiyor.
Topluluk katkıları
Sürümdeki değişikliklerin önemli bir bölümü topluluk katkılarından geliyor. Microsoft’un teşekkür ettiği katkılar şunlar:
- Preset farkındalıklı cache düzenleme, @BilboBeutlin89 (PR #4884)
- Seçilen testlerin ihtiyaç duyduğu hedeflerin derlenmesi, Brian Cody’nin özgün katkısına dayanıyor
- CMake 4.3 ve üzeri için IntelliSense derleyici argümanları, Christian Walther (@cwalther, PR #4627)
- Vendor uzantılarından gelen CMake yol güncellemelerine yanıt verilmesi, STMicroelectronics (@JDESTM, PR #4908)
- Sürüm yöneticisi shim’leri için CMake’in proje dizininde çalıştırılması, Daniele Formichelli (PR #5006)
- Daha anlaşılır çökme ve zaman aşımı mesajları, @Om-singhaI
- Kaynak dosya listesi güncellemelerinin özgün katkısı, @malsyned
Sürümle ilişkili katkılar arasında @epistax tarafından gönderilen PR #4881 de yer alıyor. Değişikliklerin tam dökümü için en güvenilir kaynak CHANGELOG dosyası.
Kimin için anlamlı?
Sürümün getirdikleri iki senaryoda öne çıkıyor. Çok hedefli test yapısı olan C++ projelerinde tek bir testi denemek için bütün test ikililerini derlemek gerekmiyor, geri bildirim döngüsü kısalıyor. CMakePresets.json dosyasını sürüm kontrolünde paylaşan ekiplerde ise geliştiricilerin yerel tercihleri paylaşılan preset dosyasını kirletmeden CMakeUserPresets.json üzerinden yönetilebiliyor, istemeden yapılan commit’lerin ve “bende çalışıyordu” türü farklılıkların önü de böyle kesiliyor.
CMake Tools ve C/C++ uzantısına Visual Studio Code Marketplace üzerinden erişilebiliyor. Geri bildirim için uzantının GitHub deposunda issue açmak, mevcut bir issue’ya oy vermek ya da doğrudan katkı sunmak mümkün.
Kaynaklar ve İleri Okuma
- Visual Studio Code CMake Tools 1.24 — C++ Team Blog (Hannia Valera)
- vscode-cmake-tools sürüm notları (GitHub Releases)
- vscode-cmake-tools tam değişiklik günlüğü
- Visual Studio 2026’da C++ tarafındaki performans ve Copilot değişiklikleri
- Visual Studio 18.9 C++ indeksleme: WCI ile daha hızlı kod gezintisi







Yorum gönder