Bagikan melalui


Menyesuaikan pengaturan build CMake

Visual Studio menggunakan file konfigurasi CMake untuk mendorong pembuatan dan build CMake. CMakePresets.json didukung oleh Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan. CMakePresets.json didukung langsung oleh CMake dan dapat digunakan untuk mendorong pembuatan dan build CMake dari Visual Studio, dari Visual Studio Code, dalam alur Integrasi Berkelanjutan, dan dari baris perintah di Windows, Linux, dan Mac. Untuk informasi selengkapnya tentang CMakePresets.json, lihat Mengonfigurasi dan membangun dengan CMake Presets.

Jika Anda mempertahankan proyek yang menggunakan CMakeSettings.json file untuk konfigurasi build CMake, Visual Studio 2019 dan versi yang lebih baru menyediakan editor pengaturan CMake. Editor memungkinkan Anda menambahkan konfigurasi CMake dan menyesuaikan pengaturannya dengan mudah. Ini dimaksudkan untuk menjadi alternatif yang lebih sederhana untuk mengedit CMakeSettings.json file secara manual. Namun, jika Anda lebih suka mengedit file secara langsung, Anda dapat memilih tautan Edit JSON di kanan atas editor.

Untuk membuka editor pengaturan CMake, pilih menu drop-down Konfigurasi di toolbar utama dan pilih Kelola Konfigurasi.

Screenshot of the CMake configuration drop-down. Manage Configurations is highlighted.

Sekarang Anda melihat Editor Pengaturan dengan konfigurasi yang diinstal di sebelah kiri.

Screenshot of the CMake settings editor.

Panel kiri memperlihatkan konfigurasi yang diinstal (x86-Debug). Panel kanan memperlihatkan pengaturan untuk konfigurasi yang dipilih. Pengaturan termasuk nama konfigurasi, jenis konfigurasi (diatur ke Debug), toolset (diatur ke msvc_x86), file toolchain CMake (kosong), build root (berisi ${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), argumen perintah CMake (kosong), dan argumen perintah build (-v).

Visual Studio menyediakan satu x64-Debug konfigurasi secara default. Anda dapat menambahkan lebih banyak konfigurasi dengan memilih tanda plus hijau. Pengaturan yang Anda lihat di editor mungkin bervariasi tergantung pada konfigurasi mana yang dipilih.

Opsi yang Anda pilih di editor ditulis ke file yang disebut CMakeSettings.json. File ini menyediakan argumen baris perintah dan variabel lingkungan yang diteruskan ke CMake saat Anda membangun proyek. Visual Studio tidak pernah memodifikasi CMakeLists.txt secara otomatis; dengan menggunakan CMakeSettings.json Anda dapat menyesuaikan build melalui Visual Studio sambil membiarkan file proyek CMake tidak tersentuh sehingga orang lain di tim Anda dapat menggunakannya dengan alat apa pun yang mereka gunakan.

CMake General Pengaturan

Pengaturan berikut ini tersedia di bawah judul Umum :

Nama konfigurasi

Sesuai dengan pengaturan nama. Nama ini muncul di menu dropdown konfigurasi C++. Anda dapat menggunakan ${name} makro untuk menyusun nilai properti lain seperti jalur.

Jenis konfigurasi

Sesuai dengan pengaturan configurationType. Menentukan jenis konfigurasi build untuk generator yang dipilih. Nilai yang saat ini didukung adalah Debug, MinSizeRel, Release, dan RelWithDebInfo. Ini memetakan ke CMAKE_BUILD_TYPE.

Toolset

Sesuai dengan pengaturan inheritedEnvironments. Menentukan lingkungan pengkompilasi yang digunakan untuk membangun konfigurasi yang dipilih. Nilai yang didukung bergantung pada jenis konfigurasi. Untuk membuat lingkungan kustom, pilih tautan Edit JSON di sudut kanan atas editor Pengaturan, dan edit file secara CMakeSettings.json langsung.

File toolchain CMake

Jalur ke file toolchain CMake. Jalur ini diteruskan ke CMake sebagai "-DCMAKE_TOOLCHAIN_FILE = <filepath>". File toolchain menentukan lokasi pengkompilasi dan utilitas toolchain, serta platform target dan informasi terkait kompilator lainnya. Secara default, Visual Studio menggunakan file toolchain vcpkg jika pengaturan ini tidak ditentukan.

Membangun akar

Sesuai dengan buildRoot. Peta ke CMAKE_BINARY_DIR, dan menentukan tempat untuk membuat cache CMake. Folder yang ditentukan dibuat jika tidak ada.

Argumen perintah

Pengaturan berikut ini tersedia di bawah judul Argumen perintah:

Argumen perintah CMake

Sesuai dengan cmakeCommandArgs. Menentukan opsi baris perintah lainnya yang diteruskan ke CMake.

Argumen perintah build

Sesuai dengan buildCommandArgs. Menentukan lebih banyak sakelar untuk diteruskan ke sistem build yang mendasar. Misalnya, melewati -v saat menggunakan generator Ninja memaksa Ninja untuk menghasilkan baris perintah.

Argumen perintah CTest

Sesuai dengan ctestCommandArgs. Menentukan lebih banyak opsi baris perintah untuk diteruskan ke CTest saat menjalankan pengujian.

Pengaturan umum untuk build jarak jauh

Untuk konfigurasi seperti Linux yang menggunakan build jarak jauh, pengaturan berikut juga tersedia:

rsync argumen perintah

Opsi baris perintah ekstra diteruskan ke rsync, alat penyalinan file yang cepat dan serbaguna.

Variabel dan cache CMake

Pengaturan ini memungkinkan Anda mengatur variabel CMake dan menyimpannya di CMakeSettings.json. Mereka diteruskan ke CMake pada waktu build, dan mengambil alih nilai apa pun yang ada dalam CMakeLists.txt file. Anda dapat menggunakan bagian ini dengan cara yang sama seperti Anda dapat menggunakan CMakeGUI untuk melihat daftar semua variabel CMake yang tersedia untuk diedit. Pilih tombol Simpan dan hasilkan cache untuk melihat daftar semua variabel CMake yang tersedia untuk diedit, termasuk variabel tingkat lanjut (per CMakeGUI). Anda dapat memfilter daftar menurut nama variabel.

Sesuai dengan variabel. Berisi pasangan nilai nama variabel CMake yang diteruskan ke -D name=value CMake. Jika instruksi build proyek CMake Anda menentukan penambahan variabel apa pun langsung ke file cache CMake, kami sarankan Anda menambahkannya di sini sebagai gantinya.

Pengaturan tingkat lanjut

Generator CMake

Sesuai dengan generator. Peta ke sakelar CMake-G, dan menentukan generator CMake yang akan digunakan. Properti ini juga dapat digunakan sebagai makro, ${generator}, saat menyusun nilai properti lainnya. Visual Studio saat ini mendukung generator CMake berikut:

  • "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"

Karena Ninja dirancang untuk kecepatan build cepat alih-alih fleksibilitas dan fungsi, ini ditetapkan sebagai default. Namun, beberapa proyek CMake mungkin tidak dapat membangun dengan benar menggunakan Ninja. Jika itu terjadi, Anda dapat menginstruksikan CMake untuk membuat proyek Visual Studio sebagai gantinya.

Mode IntelliSense

Mode IntelliSense yang digunakan oleh mesin IntelliSense. Jika tidak ada mode yang dipilih, Visual Studio mewarisi mode dari toolset yang ditentukan.

Menginstal direktori

Direktori tempat CMake menginstal target. Peta ke CMAKE_INSTALL_PREFIX.

CMake executable

Jalur lengkap ke program CMake yang dapat dieksekusi, termasuk nama file dan ekstensi. Ini memungkinkan Anda menggunakan versi kustom CMake dengan Visual Studio. Untuk build jarak jauh, tentukan lokasi CMake pada komputer jarak jauh.

Untuk konfigurasi seperti Linux yang menggunakan build jarak jauh, pengaturan berikut juga tersedia:

Akar CMakeLists.txt jarak jauh

Direktori pada komputer jarak jauh yang berisi file akar CMakeLists.txt .

Akar penginstalan jarak jauh

Direktori pada komputer jarak jauh tempat CMake menginstal target. Peta ke CMAKE_INSTALL_PREFIX.

Sumber salinan jarak jauh

Menentukan apakah akan menyalin file sumber ke komputer jarak jauh, dan memungkinkan Anda menentukan apakah akan menggunakan rsync atau sftp.

Langsung edit CMake Pengaturan.json

Anda juga dapat langsung mengedit CMakeSettings.json untuk membuat konfigurasi kustom. Editor Pengaturan memiliki tombol Edit JSON di kanan atas yang membuka file untuk pengeditan.

Contoh berikut menunjukkan konfigurasi sampel, yang dapat Anda gunakan sebagai titik awal:

    {
      "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 membantu Anda mengedit CMakeSettings.json file:

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

Editor JSON juga memberi tahu Anda saat Anda memilih pengaturan yang tidak kompatibel.

Untuk informasi selengkapnya tentang setiap properti dalam file, lihat Referensi skema CMake Pengaturan.json.

Visual Studio 2017 menyediakan beberapa konfigurasi CMake yang menentukan bagaimana CMake dipanggil untuk membuat cache CMake untuk proyek tertentu. Untuk menambahkan konfigurasi baru, pilih menu drop-down konfigurasi di toolbar dan pilih Kelola Konfigurasi:

Screenshot of Manage configurations selected in the drop-down.

Anda dapat memilih dari daftar konfigurasi yang telah ditentukan sebelumnya:

Add Configuration to CMake Settings dialog list of predefined configurations.

Pertama kali Anda memilih konfigurasi, Visual Studio membuat CMakeSettings.json file di folder akar proyek Anda. File ini digunakan untuk membuat ulang file cache CMake, misalnya setelah operasi Bersihkan .

Untuk menambahkan konfigurasi lain, klik CMakeSettings.json kanan dan pilih Tambahkan Konfigurasi.

Screenshot of the shortcut menu with Add configuration selected.

Anda juga dapat mengedit file menggunakan CMake Pengaturan Editor. CMakeSettings.json Klik kanan di Penjelajah Solusi dan pilih Edit CMake Pengaturan. Atau, pilih Kelola Konfigurasi dari menu drop-down konfigurasi di bagian atas jendela editor.

Anda juga dapat langsung mengedit CMakeSettings.json untuk membuat konfigurasi kustom. Contoh berikut menunjukkan konfigurasi sampel, yang dapat Anda gunakan sebagai titik awal:

    {
      "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 membantu Anda mengedit CMakeSettings.json file:

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

Pop-up JSON IntelliSense untuk "konfigurasi" menunjukkan buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType, antara lain.

Untuk informasi selengkapnya tentang setiap properti dalam file, lihat CMakeSettings.json referensi skema.

Baca juga

Proyek CMake di Visual Studio
Mengonfigurasi proyek CMake Linux
Menyambungkan ke komputer Linux jarak jauh Anda
Mengonfigurasi sesi penelusuran kesalahan CMake
Menyebarkan, menjalankan, dan men-debug proyek Linux Anda
Referensi konfigurasi CMake yang telah ditentukan sebelumnya