CMake derleme ayarlarını özelleştirme

Visual Studio, CMake oluşturma ve derlemeyi yönlendirmek için bir CMake yapılandırma dosyası kullanır. CMakePresets.json , Visual Studio 2019 sürüm 16.10 veya üzeri tarafından desteklenir ve önerilen CMake yapılandırma dosyasıdır. CMakePresets.json doğrudan CMake tarafından desteklenir ve Visual Studio'dan, VS Code'dan, Sürekli Tümleştirme işlem hattında ve Windows, Linux ve Mac'teki komut satırından CMake oluşturma ve derlemesini yönlendirmek için kullanılabilir. hakkında CMakePresets.jsondaha fazla bilgi için bkz . CMake Ön Ayarları ile yapılandırma ve derleme.

CMake derleme yapılandırması için dosya CMakeSettings.json kullanan projeleriniz varsa, Visual Studio 2019 ve sonraki sürümler bir CMake ayarları düzenleyicisi sağlar. Düzenleyici, CMake yapılandırmalarını eklemenizi ve ayarlarını kolayca özelleştirmenizi sağlar. Bu, dosyayı el ile düzenlemeye CMakeSettings.json daha basit bir alternatif olarak tasarlanmıştır. Ancak, dosyayı doğrudan düzenlemeyi tercih ederseniz düzenleyicinin sağ üst kısmındaki JSON Düzenle bağlantısını seçebilirsiniz.

CMake ayarları düzenleyicisini açmak için ana araç çubuğundaki Yapılandırma açılan listesini seçin ve Yapılandırmaları Yönet'i seçin.

CMake yapılandırması açılan listesinin ekran görüntüsü. Yapılandırmaları Yönet vurgulanır.

Şimdi sol tarafta yüklü yapılandırmaları içeren Ayarlar Düzenleyicisi'ni görürsünüz.

CMake ayarları düzenleyicisinin ekran görüntüsü.

Sol bölmede yüklü yapılandırmalar (x86-Debug) gösterilir. Sağ bölmede seçili yapılandırmanın ayarları gösterilir. Ayarlar yapılandırma adını, yapılandırma türünü (Hata Ayıklama olarak ayarlanır), araç takımını (msvc_x86 olarak ayarlanır), CMake araç zinciri dosyasını (boş), derleme kökünü (${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), CMake komut bağımsız değişkenlerini (boş) ve derleme komut bağımsız değişkenlerini (-v) içerir.

Visual Studio varsayılan olarak bir x64-Debug yapılandırma sağlar. Yeşil artı işaretini seçerek daha fazla yapılandırma ekleyebilirsiniz. Düzenleyicide gördüğünüz ayarlar, hangi yapılandırmanın seçili olduğuna bağlı olarak değişebilir.

Düzenleyicide seçtiğiniz seçenekler adlı CMakeSettings.jsonbir dosyaya yazılır. Bu dosya, projeleri oluştururken CMake'e geçirilen komut satırı bağımsız değişkenleri ve ortam değişkenleri sağlar. Visual Studio hiçbir zaman otomatik olarak değiştirilmez CMakeLists.txt ; kullanarak CMakeSettings.json , CMake proje dosyalarına dokunulmadan bırakarak Visual Studio aracılığıyla derlemeyi özelleştirebilirsiniz; böylece ekibinizdeki diğer kişiler kullandıkları araçlarla bunları kullanabilir.

CMake Genel Ayarları

Genel başlığı altında aşağıdaki ayarlar kullanılabilir:

Yapılandırma adı

Ad ayarına karşılık gelir. Bu ad, C++ yapılandırma açılan listesinde görünür. Yollar gibi diğer özellik değerlerini oluşturmak için makroyu kullanabilirsiniz ${name} .

Yapılandırma türü

configurationType ayarına karşılık gelir. Seçili oluşturucu için derleme yapılandırma türünü tanımlar. Şu anda desteklenen değerler Debug, MinSizeRel, Release ve RelWithDebInfo'dır. ile eşler CMAKE_BUILD_TYPE.

Araç Takımı

DevralınanEnvironments ayarına karşılık gelir. Seçili yapılandırmayı oluşturmak için kullanılan derleyici ortamını tanımlar. Desteklenen değerler yapılandırma türüne bağlıdır. Özel ortam oluşturmak için Ayarlar düzenleyicisinin sağ üst köşesindeki JSON Düzenle bağlantısını seçin ve dosyayı doğrudan düzenleyin CMakeSettings.json .

CMake araç zinciri dosyası

CMake araç zinciri dosyasının yolu. Bu yol CMake'e olarak "-DCMAKE_TOOLCHAIN_FILE = <filepath>geçirilir. Araç zinciri dosyaları, derleyicilerin ve araç zinciri yardımcı programlarının konumlarını ve diğer hedef platform ile derleyiciyle ilgili bilgileri belirtir. Varsayılan olarak, bu ayar belirtilmemişse Visual Studio vcpkg araç zinciri dosyasını kullanır.

Derleme kökü

buildRoot'a karşılık gelir. CMAKE_BINARY_DIRile eşler ve CMake önbelleğinin nerede oluşturulacağını belirtir. Belirtilen klasör yoksa oluşturulur.

Komut bağımsız değişkenleri

Komut bağımsız değişkenleri başlığı altında aşağıdaki ayarlar kullanılabilir:

CMake komut bağımsız değişkenleri

cmakeCommandArgs öğesine karşılık gelir. CMake'ye geçirilen diğer komut satırı seçeneklerini belirtir.

Komut bağımsız değişkenleri oluşturma

buildCommandArgs öğesine karşılık gelir. Temel alınan derleme sistemine geçirecek daha fazla anahtar belirtir. Örneğin, Ninja oluşturucuyu kullanırken geçirme -v , Ninja'yı komut satırlarını çıktıya zorlar.

CTest komut bağımsız değişkenleri

ctestCommandArgs öğesine karşılık gelir. Testleri çalıştırırken CTest'e geçirmek için daha fazla komut satırı seçeneği belirtir.

Uzak derlemeler için genel ayarlar

Uzak derlemeleri kullanan Linux gibi yapılandırmalar için aşağıdaki ayarlar da kullanılabilir:

rsync komut bağımsız değişkenleri

Komutuna rsyncgeçirilen ek komut satırı seçenekleri, hızlı, çok yönlü bir dosya kopyalama aracıdır.

CMake değişkenleri ve önbelleği

Bu ayarlar CMake değişkenlerini ayarlamanıza ve içinde CMakeSettings.jsonkaydetmenize olanak tanır. Derleme zamanında CMake'e geçirilir ve dosyadaki CMakeLists.txt değerleri geçersiz kılar. Bu bölümü CMakeGUI kullanarak düzenlenebilecek tüm CMake değişkenlerinin listesini görüntülemek için kullanabileceğiniz şekilde kullanabilirsiniz. Kaydet ve önbellek oluştur düğmesini seçerek, gelişmiş değişkenler (CMakeGUI başına) dahil olmak üzere düzenlenmek üzere kullanılabilen tüm CMake değişkenlerinin listesini görüntüleyin. Listeyi değişken adına göre filtreleyebilirsiniz.

Değişkenlere karşılık gelir. CMake'ye olarak -D name=value geçirilen CMake değişkenlerinin ad-değer çiftini içerir. CMake proje derleme yönergeleriniz CMake önbellek dosyasına doğrudan tüm değişkenlerin eklenmesini belirtiyorsa, bunları buraya eklemenizi öneririz.

Gelişmiş ayarlar

CMake oluşturucu

Oluşturucuya karşılık gelir. CMake -G anahtarına eşler ve kullanılacak CMake oluşturucuyu belirtir. Bu özellik, ${generator}diğer özellik değerleri oluştururken makro olarak da kullanılabilir. Visual Studio şu anda aşağıdaki CMake oluşturucularını destekler:

  • "Ninja"
  • "Unix Makefiles"
  • "Visual Studio 16 2019"
  • "Visual Studio 16 2019 Win64"
  • "Visual Studio 16 2019 ARM"
  • "Visual Studio 15 2017"
  • "Visual Studio 15 2017 Win64"
  • "Visual Studio 15 2017 ARM"
  • "Visual Studio 14 2015"
  • "Visual Studio 14 2015 Win64"
  • "Visual Studio 14 2015 ARM"

Ninja esneklik ve işlev yerine yüksek derleme hızları için tasarlandığından varsayılan olarak ayarlanır. Ancak bazı CMake projeleri Ninja kullanarak doğru şekilde oluşturulamayabilir. Böyle bir durumda CMake'e bunun yerine bir Visual Studio projesi oluşturmasını belirtebilirsiniz.

IntelliSense modu

IntelliSense altyapısı tarafından kullanılan IntelliSense modu. Hiçbir mod seçilmezse, Visual Studio modu belirtilen araç kümesinden devralır.

Dizini yükleme

CMake'in hedefleri yüklediği dizin. CMAKE_INSTALL_PREFIXile eşler.

CMake yürütülebilir dosyası

Dosya adı ve uzantısı dahil olmak üzere CMake programının yürütülebilir dosyasının tam yolu. Visual Studio ile CMake'in özel bir sürümünü kullanmanıza olanak tanır. Uzak derlemeler için uzak makinede CMake konumunu belirtin.

Uzak derlemeleri kullanan Linux gibi yapılandırmalar için aşağıdaki ayarlar da kullanılabilir:

Uzak CMakeLists.txt kökü

Uzak makinede kök CMakeLists.txt dosyayı içeren dizin.

Uzaktan yükleme kökü

CMake'in hedefleri yüklediği uzak makinedeki dizin. CMAKE_INSTALL_PREFIXile eşler.

Uzaktan kopyalama kaynakları

Kaynak dosyaların uzak makineye kopyalanıp kopyalanmayacağını belirtir ve rsync mi yoksa sftp mi kullanılacağını belirtmenize olanak tanır.

CMakeSettings.json doğrudan düzenleme

Özel yapılandırmalar oluşturmak için doğrudan düzenleyebilirsiniz CMakeSettings.json . Ayarlar Düzenleyicisi'nin sağ üst kısmında dosyayı düzenlemek üzere açan bir JSON Düzenle düğmesi vardır.

Aşağıdaki örnekte, başlangıç noktası olarak kullanabileceğiniz bir örnek yapılandırma gösterilmektedir:

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense, dosyayı düzenlemenize CMakeSettings.json yardımcı olur:

Düzenleyicide CMake JSON IntelliSense açılır penceresinin ekran görüntüsü.

Uyumlu olmayan ayarları seçtiğinizde JSON düzenleyicisi de sizi bilgilendiriyor.

Dosyadaki özelliklerin her biri hakkında daha fazla bilgi için bkz . şema başvurusu CMakeSettings.json.

Visual Studio 2017, belirli bir proje için CMake önbelleğini oluşturmak üzere CMake'nin nasıl çağrılacağını tanımlayan çeşitli CMake yapılandırmaları sağlar. Yeni yapılandırma eklemek için araç çubuğundaki yapılandırma açılan listesini seçin ve Yapılandırmaları Yönet'i seçin:

Açılan listede seçilen Yapılandırmaları yönet seçeneğinin ekran görüntüsü.

Önceden tanımlanmış yapılandırmalar listesinden seçim yapabilirsiniz:

Önceden tanımlanmış yapılandırmaların CMake Ayarları iletişim kutusu listesine Yapılandırma ekle.

İlk kez bir yapılandırma seçtiğinizde, Visual Studio projenizin kök klasöründe bir CMakeSettings.json dosya oluşturur. Bu dosya, CMake önbellek dosyasını yeniden oluşturmak için kullanılır, örneğin clean işleminden sonra.

Başka bir yapılandırma eklemek için sağ tıklayın CMakeSettings.json ve Yapılandırma Ekle'yi seçin.

Yapılandırma ekle'nin seçili olduğu kısayol menüsünün ekran görüntüsü.

CMake Ayarlar Düzenleyicisi'ni kullanarak da dosyayı düzenleyebilirsiniz. Çözüm Gezgini sağ tıklayın CMakeSettings.json ve CMake Ayarlarını Düzenle'yi seçin. Alternatif olarak, düzenleyici penceresinin üst kısmındaki yapılandırma açılan listesinden Yapılandırmaları Yönet'i de seçebilirsiniz.

Özel yapılandırmalar oluşturmak için doğrudan düzenleyebilirsiniz CMakeSettings.json . Aşağıdaki örnekte, başlangıç noktası olarak kullanabileceğiniz bir örnek yapılandırma gösterilmektedir:

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense, dosyayı düzenlemenize CMakeSettings.json yardımcı olur:

Düzenleyicide CMake JSON IntelliSense açılır penceresinin ekran görüntüsü.

"Yapılandırmalar" için JSON IntelliSense açılır penceresinde buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType ve diğerleri gösterilir.

Dosyadaki özelliklerin her biri hakkında daha fazla bilgi için bkz CMakeSettings.json . şema başvurusu.

Ayrıca bkz.

Visual Studio'da CMake Projeleri
Linux CMake projesi yapılandırma
Uzak Linux bilgisayarınıza bağlanma
CMake hata ayıklama oturumlarını yapılandırma
Linux projenizi dağıtma, çalıştırma ve projenizin hatalarını ayıklama
CMake önceden tanımlanmış yapılandırma başvurusu