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.json
daha 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.
Şimdi sol tarafta yüklü yapılandırmaları içeren Ayarlar Düzenleyicisi'ni görürsünüz.
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.json
bir 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_DIR
ile 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 rsync
geç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.json
kaydetmenize 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_PREFIX
ile 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_PREFIX
ile 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:
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:
Önceden tanımlanmış yapılandırmalar listesinden seçim yapabilirsiniz:
İ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.
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:
"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