Bagikan melalui


Proyek CMake di Visual Studio

CMake adalah alat sumber terbuka lintas platform untuk menentukan proses build yang berjalan di beberapa platform. Artikel ini mengasumsikan Anda terbiasa dengan CMake. Untuk informasi selengkapnya tentang CMake, lihat dokumentasi CMake. Tutorial CMake adalah titik awal yang baik untuk mempelajari lebih lanjut.

Catatan

CMake telah menjadi semakin terintegrasi dengan Visual Studio selama beberapa rilis terakhir. Untuk melihat dokumentasi untuk versi Visual Studio pilihan Anda, gunakan pemilih Versi yang terletak di bagian atas daftar isi di halaman ini.

Dukungan asli Visual Studio untuk CMake memungkinkan Anda mengedit, membangun, dan men-debug proyek CMake di Windows, Subsistem Windows untuk Linux (WSL), dan sistem jarak jauh dari instans Visual Studio yang sama. File proyek CMake (seperti CMakeLists.txt) digunakan langsung oleh Visual Studio untuk tujuan IntelliSense dan penjelajahan. Visual Studio memanggil cmake.exe secara langsung untuk konfigurasi dan build CMake.

Penginstalan

Alat C++ CMake untuk Windows diinstal sebagai bagian dari pengembangan Desktop dengan C++ dan Pengembangan Linux dengan beban kerja C++ . Alat C++ CMake untuk Windows dan Pengembangan Linux dengan C++ diperlukan untuk pengembangan CMake lintas platform.

Cuplikan layar alat penginstal Visual Studio.

Di alat penginstal, pengembangan Desktop dengan dropdown C plus plus dipilih dan alat C plus plus C Make untuk Windows dipilih."

Untuk informasi selengkapnya, lihat Menginstal beban kerja C++ Linux di Visual Studio.

Integrasi IDE

Saat Anda membuka folder yang CMakeLists.txt berisi file, hal-hal berikut ini terjadi.

Cuplikan layar dialog pertama yang terbuka saat Visual Studio dimulai.

Dialog menawarkan opsi ini: mengkloning repositori, membuka proyek atau solusi, membuka folder lokal, atau membuat proyek baru. Buka folder lokal ditunjukkan dalam cuplikan layar.

  • Visual Studio menambahkan item CMake ke menu Proyek , dengan perintah untuk menampilkan dan mengedit skrip CMake.

  • Penjelajah Solusi menampilkan struktur folder dan file.

  • Visual Studio menjalankan CMake dan menghasilkan file cache CMake (CMakeCache.txt) untuk konfigurasi default. Baris perintah CMake ditampilkan di Jendela Output, bersama dengan output lain dari CMake.

  • Di latar belakang, Visual Studio mulai mengindeks file sumber untuk mengaktifkan IntelliSense, menelusuri informasi, merefaktor, dan sebagainya. Saat Anda bekerja, Visual Studio memantau perubahan di editor dan juga pada disk untuk menjaga indeksnya tetap sinkron dengan sumbernya.

Catatan

Mulai Visual Studio 2022 versi 17.1 Pratinjau 2, jika CMakeLists.txt tingkat atas Anda ada di subfolder dan bukan di akar ruang kerja, Anda akan diminta apakah Anda ingin mengaktifkan integrasi CMake atau tidak. Untuk informasi selengkapnya, lihat Aktivasi parsial CMake.

Setelah pembuatan cache CMake berhasil, Anda juga dapat melihat proyek Anda diatur secara logis menurut target. Pilih tombol Pilih Tampilan pada toolbar Penjelajah Solusi. Dari daftar di Penjelajah Solusi - Tampilan, pilih Tampilan Target CMake dan tekan Enter untuk membuka tampilan target:

Cuplikan layar jendela Tampilan Penjelajah Solusi. Tampilan folder terbuka. Opsi C Buat Tampilan Target disorot.

Pilih tombol Perlihatkan Semua File di bagian atas Penjelajah Solusi untuk melihat semua output yang dihasilkan CMake di out/build/<config> folder.

CMakeLists.txt Gunakan file di setiap folder proyek seperti yang Anda lakukan di proyek CMake apa pun. Anda dapat menentukan file sumber, menemukan pustaka, mengatur opsi pengkompilasi dan linker, dan menentukan informasi terkait sistem build lainnya. Untuk informasi selengkapnya tentang layanan bahasa CMake yang disediakan oleh Visual Studio, lihat Mengedit file CMakeLists.txt.

Visual Studio menggunakan file konfigurasi CMake untuk mendorong pembuatan dan build cache CMake. Untuk informasi selengkapnya, lihat Mengonfigurasi proyek CMake dan Membangun proyek CMake.

Untuk meneruskan argumen ke yang dapat dieksekusi pada waktu debug, Anda dapat menggunakan file lain yang disebut launch.vs.json. Untuk informasi selengkapnya tentang debugging proyek CMake lintas-platform di Visual Studio, lihat Mendebug proyek CMake.

Sebagian besar fitur bahasa Visual Studio dan C++ didukung oleh proyek CMake di Visual Studio. Contohnya meliputi:

Catatan

Untuk jenis proyek Open Folder lainnya, file CppProperties.json JSON tambahan digunakan. File ini tidak relevan untuk proyek CMake.

Mengonfigurasi proyek CMake

Langkah konfigurasi CMake menghasilkan sistem build proyek. Ini setara dengan memanggil cmake.exe dari baris perintah. Untuk informasi selengkapnya tentang langkah konfigurasi CMake, lihat dokumentasi 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 menggerakkan generasi dan pembangunan CMake di Visual Studio, VS 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. CMakeSettings.json tersedia untuk pelanggan yang menggunakan versi Visual Studio yang lebih lama. Untuk informasi selengkapnya tentang CMakeSettings.json, lihat Menyesuaikan pengaturan build CMake.

Saat Anda membuat perubahan signifikan pada file konfigurasi CMake atau file CMakeLists.txt, Visual Studio secara otomatis menjalankan langkah konfigurasi CMake. Anda dapat memanggil langkah konfigurasi secara manual: Pilih Project > Configure Cache dari toolbar. Anda juga dapat mengubah preferensi konfigurasi di >Umum.

Cuplikan layar opsi konfigurasi C Make di jendela pengaturan Visual Studio.

Pengaturan konfigurasi C Make dipanggil. Tampilkan pemberitahuan cache C Make dipilih. Di bagian 'Saat cache kedaluarsa', opsi 'Jangan pernah menjalankan langkah konfigurasi secara otomatis' dipilih.

Jika langkah konfigurasi selesai tanpa kesalahan, informasi yang tersedia mendorong C++ IntelliSense dan layanan bahasa. Ini juga digunakan dalam operasi build dan debug.

Anda juga dapat membuka cache CMake yang ada di Visual Studio. Untuk informasi selengkapnya, lihat Membuka cache yang sudah ada.

Menyesuaikan umpan balik dan pemberitahuan konfigurasi

Secara bawaan, sebagian besar pesan konfigurasi tidak ditampilkan kecuali ada kesalahan. Untuk melihat semua pesan, pilih Alat>Opsi>CMake>Aktifkan keluaran diagnostik CMake yang terperinci.

Anda juga dapat menonaktifkan semua pemberitahuan cache CMake (bilah emas) dengan menonaktifkan Tampilkan pemberitahuan cache CMake.

Mengkustomisasi grup sumber Tampilan Target

Secara default, Tampilan Target CMake mengabaikan grup sumber berikut: File Sumber, File Header , Sumber Daya , File Objek. Grup ini disertakan secara default dalam sebagian besar proyek CMake dan tidak perlu meningkatkan jumlah klik yang diperlukan untuk menavigasi Tampilan Target.

Anda dapat mengaktifkan penggunaan grup sumber ini dengan memilih Alat>Opsi>CMake>Mengaktifkan penggunaan grup sumber yang diabaikan dalam Tampilan Target CMake.

Pemecahan masalah kesalahan cache CMake

Jika Anda memerlukan informasi selengkapnya tentang status cache CMake untuk mendiagnosis masalah, buka menu utama Proyek atau CMakeLists.txt menu konteks di Penjelajah Solusi untuk menjalankan salah satu perintah ini:

  • Lihat CMakeCache.txt membuka berkas CMakeCache.txt dari direktori build di editor. Setiap pengeditan yang Anda buat di sini pada CMakeCache.txt akan dihapus jika Anda membersihkan cache. Untuk membuat perubahan yang bertahan setelah Anda membersihkan cache, lihat Menyesuaikan pengaturan CMake atau Mengonfigurasi dan membangun dengan CMake Presets.

  • Menghapus Cache dan Mengonfigurasi Ulang menghapus direktori build dan mengonfigurasi ulang dari cache bersih.

  • Mengonfigurasi Cache memaksa langkah pembuatan untuk dijalankan meskipun Visual Studio mempertimbangkan lingkungan mutakhir.

Membangun proyek CMake

Langkah proses build CMake menghasilkan struktur pohon biner proyek yang sudah dibuat. Ini setara dengan memanggil cmake --build dari baris perintah. Untuk informasi selengkapnya tentang langkah build CMake, lihat dokumentasi CMake.

Untuk membangun proyek CMake, Anda memiliki pilihan berikut:

  1. Di toolbar, temukan dropdown Item Memulai. Pilih target pilihan dan tekan F5, atau pilih tombol Jalankan pada toolbar. Proyek secara otomatis dibangun terlebih dahulu, sama seperti solusi Visual Studio.

  2. Klik kanan target CMake dengan Tampilan Target CMake aktif di Penjelajah Solusi dan pilih Bangun dari menu konteks.

  3. Dari menu utama, pilih Membangun > Membangun Semua. Pastikan target CMake sudah dipilih di dropdown Item Startup di toolbar.

Seperti yang Anda harapkan, hasil build ditampilkan di Jendela Output dan Daftar Kesalahan.

Cuplikan layar jendela Daftar Kesalahan Visual Studio

C menampilkan peringatan build tentang konversi yang mungkin mengakibatkan hilangnya data, seperti mengonversi dari float ke bilangan bulat, yang dapat terlihat.

Mengedit pengaturan penyusunan

Visual Studio menggunakan file konfigurasi CMake untuk mendorong build CMake. File konfigurasi CMake merangkum opsi build seperti sakelar alat build asli dan variabel lingkungan. Jika CMakePresets.json adalah file konfigurasi aktif Anda, lihat Mengonfigurasi dan membangun dengan CMake Presets. Jika CMakeSettings.json adalah file konfigurasi aktif Anda, lihat Menyesuaikan pengaturan build CMake. CMakePresets.json tersedia di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Men-debug proyek CMake

Semua target CMake yang dapat dieksekusi ditampilkan di dropdown Startup Item di toolbar. Untuk memulai debug, pilih salah satu dan tekan tombol Debug > Mulai Debugging di toolbar. Dalam proyek CMake, opsi dokumen saat ini hanya valid untuk file .cpp.

Cuplikan layar menu dropdown Debug di Visual Studio.

Dropdown memiliki opsi ini: Tampilkan/ Sembunyikan target debug, dokumen saat ini, sampel (yang disorot), box2d_tests, dan samples-noGUI.

Perintah Debug atau F5 terlebih dahulu membangun proyek jika perubahan telah dilakukan sejak build sebelumnya. Perubahan pada file konfigurasi CMake (CMakePresets.json atau CMakeSettings.json) atau CMakeLists.txt menyebabkan cache CMake dibuat ulang.

Anda dapat menyesuaikan sesi debugging CMake dengan mengatur properti di dalam file launch.vs.json. Untuk menyesuaikan pengaturan debug untuk target tertentu, pilih target di dropdown Item Startup dan pilih Debug > Pengaturan Debug dan Peluncuran untuk target aktif <>. Untuk informasi selengkapnya tentang sesi penelusuran kesalahan CMake, lihat Mengonfigurasi sesi penelusuran kesalahan CMake.

Hanya Kode Saya untuk proyek CMake

Saat Anda membangun untuk Windows menggunakan pengkompilasi MSVC, proyek CMake memiliki dukungan untuk debugging Just My Code. Untuk mengubah pengaturan Hanya Kode Saya, buka Alat>Opsi>Debugging>Umum. Untuk informasi selengkapnya tentang penelusuran kesalahan Just My Code, lihat Debug hanya kode pengguna dengan Just My Code.

Edit dan Lanjutkan untuk proyek CMake

Saat Anda membuat untuk Windows dengan pengkompilasi MSVC, proyek CMake memiliki dukungan untuk Edit dan Lanjutkan. Tambahkan kode berikut ke file Anda CMakeLists.txt untuk mengaktifkan Edit dan Lanjutkan.

if(MSVC)
  target_compile_options(<target> PUBLIC "/ZI")
  target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()

Untuk informasi selengkapnya tentang Edit dan Lanjutkan, lihat Mengonfigurasi Edit dan Lanjutkan (C#, VB, C++).

Melampirkan ke proyek CMake yang berjalan di Linux

Visual Studio memungkinkan Anda untuk men-debug proses yang berjalan pada sistem Linux jarak jauh atau WSL dan men-debugnya dengan debugger GDB. Untuk memulai, pilih Lampirkan Debug>ke Proses..., atur Jenis koneksi ke SSH, dan pilih Target koneksi Anda dari daftar koneksi di Pengelola Sambungan. Pilih proses dari daftar proses yang tersedia dan tekan Lampirkan. GDB harus diinstal pada komputer Linux Anda. Untuk informasi selengkapnya tentang koneksi SSH, lihat Pengelola Sambungan

Cuplikan layar menu Lampirkan ke Proses di Visual Studio.

Opsi berikut tersedia pada dialog: Jenis koneksi (diatur ke SSH), target koneksi (diatur ke demo@ 172. 20. 60. 6), dan daftar proses yang tersedia yang dapat Anda lampirkan."

Aktivasi parsial CMake

Di Visual Studio 2022 versi 17.1 dan yang lebih baru, fungsionalitas CMake tidak diaktifkan secara otomatis jika folder akar Anda tidak berisi file CMakeLists.txt. Sebagai gantinya, dialog meminta Anda tentang apakah Anda ingin mengaktifkan fungsionalitas CMake untuk proyek Anda. Jika Anda menolak, pembuatan cache CMake tidak dimulai dan konfigurasi CMake (dari CMakeSettings.json atau CMakePresets.json) tidak muncul di dropdown konfigurasi. Jika menerima, Anda dibawa ke file konfigurasi tingkat ruang kerja, CMakeWorkspaceSettings.json (disimpan di direktori .vs), untuk menentukan folder yang ingin Anda aktifkan CMake-nya. (Folder ini berisi file akar CMakeLists.txt Anda).

Properti yang diterima adalah:

Properti Deskripsi
enableCMake Aktifkan integrasi Visual Studio untuk ruang kerja ini.
sourceDirectory String atau array string yang menentukan satu atau beberapa direktori dengan CMakeLists.txt. Makro (seperti ${workspaceRoot}) diperbolehkan. Jalur relatif didasarkan pada akar ruang kerja. Direktori di luar ruang kerja saat ini diabaikan.

Anda dapat mengakses CMakeWorkspaceSettings.json perintah Project>Pengaturan Ruang Kerja CMake kapan saja, meskipun fungsionalitas CMake saat ini dinonaktifkan.

Buka cache yang sudah ada

Saat Anda membuka file cache CMake yang ada (CMakeCache.txt), Visual Studio tidak mencoba mengelola cache dan pohon build untuk Anda. Alat kustom atau pilihan Anda memiliki kontrol penuh atas cara CMake mengonfigurasi proyek Anda.

Anda dapat menambahkan cache CMake yang ada ke proyek terbuka. Ini dilakukan dengan cara yang sama seperti Anda akan menambahkan konfigurasi baru. Untuk informasi selengkapnya, lihat posting blog kami tentang membuka cache yang ada di Visual Studio.

Catatan

Pengalaman cache default yang ada bergantung pada cmake-server, yang dihapus dari CMake di versi 3.20. Untuk terus menggunakan fungsionalitas cache yang ada di Visual Studio 2019 versi 16.10 dan yang lebih baru, lakukan salah satu langkah berikut:

  • Instal CMake versi 3.19 atau yang lebih rendah secara manual. Kemudian, atur cmakeExecutable properti di konfigurasi cache yang ada untuk menggunakan versi CMake tersebut.
  • Dalam konfigurasi cache yang ada, atur cacheGenerationCommand properti untuk memungkinkan Visual Studio meminta file API berbasis file CMake yang diperlukan. Untuk informasi selengkapnya tentang properti tersebut, lihat referensi CMakeSettings.json.
  • Gunakan file kueri untuk meminta file API berbasis file CMake saat membuat cache Anda sebelum dibuka di Visual Studio. Untuk petunjuk berkas kueri, lihat bagian berikutnya, Pemecahan Masalah Cache CMake Tingkat Lanjut.

Pemecahan masalah cache CMake tingkat lanjut

Visual Studio menggunakan API berbasis file CMake (dalam versi 3.14 dan yang lebih baru) untuk mengisi editor dengan informasi khusus untuk struktur proyek Anda. Untuk informasi selengkapnya, lihat posting blog tim C++ di ruang kerja multi-root dan API berbasis file.

Sebelum membuat cache CMake, alat kustom atau pilihan Anda mungkin perlu membuat file kueri bernama .cmake/api/v1/query/client-MicrosoftVS/query.json di folder output build Anda (folder yang berisi CMakeCache.txt). File kueri harus berisi konten ini:

{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}

Saat alat kustom atau pilihan Anda menghasilkan cache Anda, CMake menempatkan file di bawah .cmake/api/v1/response yang digunakan Visual Studio untuk mengisi editor dengan informasi khusus untuk struktur proyek Anda.

CMakeLists.txt Mengedit file

Untuk mengedit CMakeLists.txt file, klik kanan file di Penjelajah Solusi dan pilih Buka. Jika Anda membuat perubahan pada file, bilah status kuning muncul dan memberi tahu Anda bahwa IntelliSense akan diperbarui. Ini memberi Anda kesempatan untuk membatalkan operasi pembaruan. Untuk informasi tentang CMakeLists.txt, lihat dokumentasi CMake.

Cuplikan layar file C Make Lists TXT yang sedang diedit di Visual Studio.

Ini berisi baris proyek (hello-cmake), add_subdirectory (tests), add_executable (hello hello.cpp), dan install (TARGETS hello DESTINATION hello/bin). Pesan di bagian atas jendela mengatakan bahwa info c plus plus IntelliSense akan di-refresh setelah C Make selesai menghasilkan cache.

Segera setelah Anda menyimpan file, langkah konfigurasi secara otomatis berjalan lagi dan menampilkan informasi di jendela Output . Kesalahan dan peringatan ditampilkan di jendela Daftar Kesalahan atau Output . Klik dua kali pada kesalahan di Daftar Kesalahan untuk membuka baris yang menyinggung di CMakeLists.txt.

Cuplikan layar kesalahan C Make di daftar kesalahan Visual Studio.

Pesan kesalahan C Make pada baris 3 CMakeLists.txt disorot. Detailnya adalah bahwa C Make tidak dapat menemukan file konfigurasi paket yang disediakan oleh sqlite3. C Make mencarinya di CMAKE_MODULE_PATH tetapi tidak dapat menemukannya. Sarannya adalah menambahkan awalan penginstalan 'sqlite3' ke CMAKE_PREFIX_PATH atau mengatur sqlite3_DIR ke direktori yang berisi sqlite3Config.cmake dan/atau sqlitet3-config.cmake.

Layanan bahasa untuk CMake

Layanan bahasa untuk CMake tersedia di Visual Studio 2019 versi 16.5 atau yang lebih baru. Layanan bahasa mendukung fitur navigasi kode seperti Pindah ke Definisi, Intip Definisi, dan Temukan Semua Referensi untuk variabel, fungsi, dan target CMake dalam file skrip CMake. Untuk informasi selengkapnya, lihat Navigasi Kode untuk Skrip CMake.

Cuplikan layar jendela Visual Studio Temukan Semua Referensi.

Hasil di mana SUPERTUX_SOURCES_CXX ditemukan ditampilkan. Misalnya, dalam list(SORT SSUPERTUX_SOURCES_CXX), file(GLOB SUPERTUX_SOURCES_CXX) dan sebagainya.

Manipulasi proyek CMake

Manipulasi proyek CMake tersedia di Visual Studio 2019 versi 16.5 atau yang lebih baru. Manipulasi proyek memungkinkan Anda menambahkan, menghapus, dan mengganti nama file sumber dan target di proyek CMake Anda tanpa mengedit skrip CMake Anda secara manual. Saat Anda menambahkan atau menghapus file dari Penjelajah Solusi, Visual Studio secara otomatis mengedit proyek CMake Anda. Mungkin ada lebih dari satu tempat di mana masuk akal untuk menambahkan atau menghapus referensi ke skrip CMake. Jika demikian, Visual Studio meminta Anda di mana Anda ingin membuat perubahan dan menampilkan pratinjau perubahan yang diusulkan. Untuk instruksi langkah demi langkah, lihat Menambahkan, Menghapus, dan Mengganti Nama File dan Target di Proyek CMake.

Tangkapan layar jendela dialog Perubahan pada Pratinjau Visual Studio.

Tampilan pohon memperlihatkan CMakeLists.txt yang berisi dua item: add_executable dan set. Pengaturan diperiksa. Jendela pratinjau menunjukkan di mana perubahan akan dilakukan. Kumpulan baris PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" menunjukkan "Demo.cpp" yang disorot sebelum kurung tutup. Tombol terapkan menerima perubahan, atau Anda dapat menekan tombol batal.

IntelliSense untuk proyek CMake

Secara default, Visual Studio menggunakan mode IntelliSense yang cocok dengan arsitektur kompilator dan target yang ditentukan oleh konfigurasi CMake aktif.

Jika CMakePresets.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat menentukan opsi IntelliSense menggunakan intelliSenseMode dan intelliSenseOptions di peta vendor Pengaturan Visual Studio. Untuk informasi selengkapnya, lihat referensi peta vendor Pengaturan Visual Studio.

Jika CMakeSettings.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat menentukan opsi IntelliSense menggunakan intelliSenseMode di CMakeSettings.json. Untuk informasi selengkapnya, lihat CMakeSettings.json referensi.

Mengonfigurasi IntelliSense dengan file toolchain CMake

Di Visual Studio 2019 versi 16.9 dan yang lebih baru, Visual Studio secara otomatis mengonfigurasi IntelliSense dalam proyek CMake berdasarkan variabel CMake saat Anda menggunakan file toolchain CMake. Untuk informasi selengkapnya, lihat Mengonfigurasi IntelliSense dengan File Toolchain CMake.

Integrasi Vcpkg

Proyek CMake yang dibuka di Visual Studio terintegrasi dengan vcpkg, manajer dependensi C/C++ lintas platform. Sebelum menggunakan vcpkg dengan Visual Studio, Anda harus menjalankan vcpkg integrate install. Untuk instruksi dan informasi selengkapnya tentang vcpkg, lihat:

Jika CMakeSettings.json adalah file konfigurasi aktif Anda, Visual Studio secara otomatis meneruskan file toolchain vcpkg (vcpkg.cmake) ke CMake. Perilaku ini dinonaktifkan secara otomatis saat Anda menentukan toolchain lain dalam konfigurasi Pengaturan CMake Anda.

Jika CMakePresets.json adalah file konfigurasi aktif Anda, Anda perlu mengatur jalur ke vcpkg.cmake di CMakePresets.json. Sebaiknya gunakan VCPKG_ROOT variabel lingkungan alih-alih jalur absolut untuk menjaga file tetap dapat dibagikan. Untuk informasi selengkapnya, lihat Mengaktifkan integrasi vcpkg dengan CMake Presets. CMakePresets.json tersedia di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Jalankan CMake dari baris perintah

Jika CMakePresets.json adalah file konfigurasi CMake aktif Anda, maka Anda dapat dengan mudah mereproduksi build lokal Anda di luar Visual Studio. Untuk informasi selengkapnya, lihat Menjalankan CMake dari baris perintah atau alur CI. CMakePresets.json didukung di Visual Studio 2019 versi 16.10 atau yang lebih baru dan merupakan file konfigurasi CMake yang direkomendasikan.

Jika CMakeSettings.json adalah file konfigurasi CMake aktif Anda, maka Anda perlu meneruskan argumen yang dikodekan secara manual dalam file CMakeSettings.json Anda ke CMake. Jika Anda menginstal CMake dari Alat Penginstal Visual Studio, Anda dapat menjalankannya dari baris perintah dengan mengikuti langkah-langkah berikut:

  1. Jalankan file yang sesuai vsdevcmd.bat (x86/x64). Untuk informasi selengkapnya, lihat Menggunakan toolset Microsoft C++ dari baris perintah .

  2. Beralih ke folder output Anda.

  3. Jalankan CMake untuk membuat atau mengonfigurasi aplikasi Anda.

Visual Studio 2017 memiliki dukungan yang kaya untuk CMake, termasuk proyek CMake lintas platform. Komponen Visual C++ Tools for CMake menggunakan fitur Open Folder untuk memungkinkan IDE menggunakan file proyek CMake (seperti CMakeLists.txt) secara langsung untuk tujuan IntelliSense dan penjelajahan. Generator Ninja dan Visual Studio didukung. Jika Anda menggunakan generator Visual Studio, ia menghasilkan file proyek sementara dan meneruskannya ke MSBuild. Namun, proyek tidak pernah dijalankan untuk tujuan IntelliSense atau penjelajahan. Anda juga dapat mengimpor cache CMake yang ada.

Penginstalan

Alat C++ Visual untuk CMake diinstal sebagai bagian dari pengembangan Desktop dengan C++ dan Pengembangan Linux dengan beban kerja C+ +.

Cuplikan layar Alat Penginstal Visual Studio. Tab Komponen individual dipilih di mana Visual C plus plus alat untuk C Make dipilih.

Untuk informasi selengkapnya, lihat Menginstal beban kerja C++ Linux di Visual Studio.

Integrasi IDE

Saat Anda memilih File > Buka > Folder untuk membuka folder yang CMakeLists.txt berisi file, hal berikut ini terjadi:

  • Visual Studio menambahkan item menu CMake ke menu utama, dengan perintah untuk melihat dan mengedit skrip CMake.

  • Penjelajah Solusi menampilkan struktur folder dan file.

  • Visual Studio menjalankan CMake dan secara opsional menghasilkan cache CMake untuk konfigurasi default, yaitu x86 Debug. Baris perintah CMake ditampilkan di Jendela Output, bersama dengan output lain dari CMake.

  • Di latar belakang, Visual Studio mulai mengindeks file sumber untuk mengaktifkan IntelliSense, menelusuri informasi, merefaktor, dan sebagainya. Saat Anda bekerja, Visual Studio memantau perubahan di editor dan juga pada disk untuk menjaga indeksnya tetap sinkron dengan sumbernya.

Anda dapat membuka folder yang berisi sejumlah proyek CMake. Visual Studio mendeteksi dan mengonfigurasi semua file CMakeLists.txt tingkat atas di ruang kerja Anda. Operasi CMake (mengonfigurasi, membangun, men-debug), C++ IntelliSense, dan penjelajahan tersedia untuk semua proyek CMake di ruang kerja Anda.

Cuplikan layar Penjelajah Solusi Visual Studio.

File dan folder proyek C Make terlihat. Ada subdirektori pengujian, CMakeLists.txt, dan hello.cpp. Ada folder hello-cmake-vcpkg yang berisi CMakeLists.txt, CMakeSettings.json, dan hello.cpp.

Anda juga dapat melihat proyek yang diatur secara logis menurut target. Pilih Tampilan Target ke dalam menu drop-down di toolbar Penjelajah Solusi:

Cuplikan layar tombol dropdown di Penjelajah Solusi Visual Studio yang menawarkan opsi tampilan target CMake. Yang dipilih.

Visual Studio menggunakan file yang dipanggil CMakeSettings.json untuk menyimpan variabel lingkungan atau opsi baris perintah untuk CMake. CMakeSettings.json juga memungkinkan Anda menentukan dan menyimpan beberapa konfigurasi build CMake. Anda dapat dengan mudah beralih di antara mereka di IDE.

Jika tidak, gunakan seperti yang CMakeLists.txt Anda lakukan di proyek CMake apa pun untuk menentukan file sumber, menemukan pustaka, mengatur opsi pengkompilasi dan pengtaut, dan menentukan informasi terkait sistem build lainnya.

Jika Anda perlu meneruskan argumen ke yang dapat dieksekusi pada waktu debug, Anda dapat menggunakan file lain yang disebut launch.vs.json. Dalam beberapa skenario, Visual Studio secara otomatis menghasilkan file-file ini. Anda dapat mengeditnya secara manual, atau bahkan membuat file sendiri.

Catatan

Untuk jenis proyek Open Folder lainnya, dua file JSON tambahan digunakan: CppProperties.json dan tasks.vs.json. Keduanya tidak relevan untuk proyek CMake.

Mengimpor cache yang sudah ada

Saat Anda mengimpor file CMakeCache.txt yang ada, Visual Studio secara otomatis mengekstrak variabel yang disesuaikan dan membuat file CMakeSettings.json yang telah diisi sebelumnya berdasarkan file tersebut. Cache asli tidak dimodifikasi dengan cara apa pun. Ini masih dapat digunakan dari baris perintah, atau dengan alat atau IDE apa pun yang digunakan untuk menghasilkannya. File baru CMakeSettings.json ditempatkan di samping direktori utama proyek CMakeLists.txt. Visual Studio menghasilkan cache baru berdasarkan file pengaturan. Anda dapat mengambil alih pembuatan cache otomatis dalam dialog Opsi > Alat > CMake > Umum.

Tidak semua yang ada dalam cache diimpor. Properti seperti generator dan lokasi pengkompilasi diganti dengan default yang dikenal berfungsi dengan baik dengan IDE.

Untuk mengimpor cache yang ada

  1. Dari menu utama, pilih File > Buka > CMake:

    Cuplikan layar menu utama Visual Studio dengan C Make dipilih.

    Perintah ini memunculkan wizard Impor CMake dari Cache .

  2. Navigasi ke CMakeCache.txt file yang ingin Anda impor, lalu pilih OK. Wizard Impor Proyek CMake dari Cache muncul:

    Cuplikan layar wizard Impor C Make Project dari Cache. Jalur direktori proyek C Make yang akan diimpor masuk ke kotak teks folder.

    Saat wizard selesai, Anda dapat melihat file baru CMakeCache.txt di Penjelajah Solusi di samping file indukCMakeLists.txt* di proyek Anda.

Membangun proyek CMake

Untuk membangun proyek CMake, Anda memiliki pilihan berikut:

  1. Di toolbar Umum, temukan dropdown Konfigurasi. Ini mungkin menampilkan Linux-Debug atau x64-Debug secara default. Pilih konfigurasi pilihan dan tekan F5, atau pilih tombol Jalankan (segitiga hijau) pada toolbar. Proyek secara otomatis dibangun terlebih dahulu, sama seperti solusi Visual Studio.

  2. CMakeLists.txt Klik kanan di Penjelajah Solusi dan pilih Bangun dari menu konteks. Jika Anda memiliki beberapa target dalam struktur folder, Anda dapat memilih untuk membangun semua atau hanya satu target tertentu.

  3. Dari menu utama, pilih Build > Build Solution (F7 atau Ctrl+Shift+B). Pastikan target CMake sudah dipilih di dropdown Item Startup di toolbar Umum.

Cuplikan layar Penjelajah Solusi Visual Studio setelah mengklik kanan C Make Lists dot t x t.

Menu memiliki opsi seperti Tambahkan, Buka, Konfigurasikan tugas, Bangun, Bersihkan semua, dan sebagainya.

Anda dapat menyesuaikan konfigurasi build, variabel lingkungan, argumen baris perintah, dan pengaturan lainnya dalam CMakeSettings.json file. Ini memungkinkan Anda membuat perubahan tanpa memodifikasi CMakeLists.txt file. Untuk informasi selengkapnya, lihat Menyesuaikan pengaturan build CMake.

Seperti yang Anda harapkan, hasil build ditampilkan di Jendela Keluaran dan Daftar Galat.

Cuplikan layar jendela Daftar Kesalahan Visual Studio.

C Membuat peringatan build tentang konversi yang mungkin mengakibatkan hilangnya data seperti mengonversi dari float ke bilangan bulat terlihat.

Di folder dengan beberapa target build, Anda dapat menentukan target CMake mana yang akan dibangun: Pilih item Build pada menu CMake atau CMakeLists.txt menu konteks untuk menentukan target. Jika Anda memasukkan Ctrl+Shift+B dalam proyek CMake, CMake akan membangun dokumen aktif saat ini.

Men-debug proyek CMake

Untuk men-debug proyek CMake, pilih konfigurasi pilihan dan tekan F5. Atau, tekan tombol Jalankan di toolbar. Jika tombol Jalankan menampilkan teks Pilih Item Startup, pilih panah bawah dan pilih target yang ingin Anda jalankan. (Dalam proyek CMake, opsi dokumen Saat Ini hanya valid untuk file .cpp.)

Cuplikan layar menu dropdown Pilih Item Startup untuk proyek C Make. Anda dapat memilih dokumen saat ini atau hello-cmake.

Perintah Jalankan atau F5 akan membangun proyek terlebih dahulu jika ada perubahan yang telah dilakukan sejak build sebelumnya.

Anda dapat menyesuaikan sesi debugging CMake dengan mengatur properti dalam file launch.vs.json. Untuk informasi selengkapnya, lihat Mengonfigurasi sesi penelusuran kesalahan CMake.

Mengedit file CMakeLists.txt

Untuk mengedit CMakeLists.txt file, klik kanan file di Penjelajah Solusi dan pilih Buka. Jika Anda membuat perubahan pada file, bilah status kuning muncul dan memberi tahu Anda bahwa IntelliSense akan diperbarui. Ini memberi Anda kesempatan untuk membatalkan operasi pembaruan. Untuk informasi tentang CMakeLists.txt, lihat dokumentasi CMake.

Cuplikan layar file C Make Lists yang sedang diedit di Visual Studio.

File berisi proyek (hello-cmake), add_subdirectory (pengujian), add_executable (hello hello.cpp), dan instal (TARGETS hello DESTINATION hello/bin). Pesan di bagian atas jendela mengatakan bahwa info c plus plus IntelliSense akan di-refresh setelah C Make selesai menghasilkan cache.

Segera setelah Anda menyimpan file, langkah konfigurasi secara otomatis berjalan lagi dan menampilkan informasi di jendela Output . Kesalahan dan peringatan ditampilkan di jendela Daftar Kesalahan atau Output . Klik dua kali pada kesalahan di Daftar Kesalahan untuk menavigasi ke baris yang menimbulkan kesalahan di CMakeLists.txt.

Cuplikan layar kesalahan C Make di daftar kesalahan Visual Studio.

Pesan kesalahan C Make pada baris 3 CMakeLists.txt disorot. Detailnya adalah bahwa C Make tidak dapat menemukan file konfigurasi paket yang disediakan oleh sqlite3. C Make mencarinya di CMAKE_MODULE_PATH tetapi tidak dapat menemukannya. Sarannya adalah menambahkan awalan penginstalan 'sqlite3' ke CMAKE_PREFIX_PATH atau mengatur sqlite3_DIR ke direktori yang berisi sqlite3Config.cmake dan/atau sqlitet3-config.cmake.

Langkah konfigurasi CMake

Ketika perubahan signifikan dilakukan pada CMakeSettings.json atau ke CMakeLists.txt file, Visual Studio secara otomatis menjalankan ulang langkah konfigurasi CMake. Jika langkah konfigurasi selesai tanpa kesalahan, informasi yang dikumpulkan tersedia di C++ IntelliSense dan layanan bahasa. Ini juga digunakan dalam operasi pembangunan dan debugging.

Beberapa proyek CMake mungkin menggunakan nama konfigurasi CMake yang sama (misalnya, x86-Debug). Semuanya dikonfigurasi dan dibangun (dalam folder root build mereka sendiri) ketika konfigurasi tersebut dipilih. Anda dapat men-debug target dari semua proyek CMake yang berpartisipasi dalam konfigurasi CMake tersebut.

Cuplikan layar menu utama Visual Studio, terbuka ke CMake Build Only.

Menu konteks menunjukkan apa yang dapat dibuat. Dalam hal ini hello-cmake-a \ hello-cmake.exe (Project hello-cmake) and hello-cmake-b\hello-cmake.exe (Project hello-cmake). Yang terakhir disorot.

Anda dapat membatasi sesi build dan debug ke subset proyek di ruang kerja. Buat konfigurasi baru dengan nama unik dalam CMakeSettings.json file. Kemudian, terapkan konfigurasi ke proyek tersebut saja. Saat konfigurasi tersebut dipilih, IntelliSense dan perintah build dan debug hanya berlaku untuk proyek yang ditentukan.

Pemecahan masalah kesalahan cache CMake

Jika Anda memerlukan informasi selengkapnya tentang status cache CMake untuk mendiagnosis masalah, buka menu utama CMake atau CMakeLists.txt menu konteks di Penjelajah Solusi untuk menjalankan salah satu perintah ini:

  • Lihat Cache membuka file CMakeCache.txt dari folder root build di editor. Setiap pengeditan yang Anda lakukan pada CMakeCache.txt akan dihapus jika Anda membersihkan cache. Untuk membuat perubahan yang bertahan setelah cache dibersihkan, lihat Menyesuaikan pengaturan CMake.

  • Buka Folder Singgahan membuka jendela Penjelajah ke folder root build.

  • Clean Cache menghapus folder akar build sehingga langkah konfigurasi CMake berikutnya dimulai dari cache bersih.

  • Buat Cache memaksa langkah menghasilkan untuk dijalankan meskipun Visual Studio menganggap lingkungan sudah diperbarui.

Pembuatan cache otomatis dapat dinonaktifkan dalam dialog Opsi > Alat > CMake > Umum.

Kompilasi file tunggal

Untuk membuat satu file dalam proyek CMake, klik kanan pada file di Penjelajah Solusi. Pilih Kompilasi dari menu pop-up. Anda juga dapat membangun file yang saat ini terbuka di editor dengan menggunakan menu CMake utama:

Cuplikan layar menu konteks Kompilasi C Make. Ini berisi satu entri, Bullet 3 Collision.

Jalankan CMake dari baris perintah

Jika Anda menginstal CMake dari Alat Penginstal Visual Studio, Anda dapat menjalankannya dari baris perintah dengan mengikuti langkah-langkah berikut:

  1. Jalankan file yang sesuai vsdevcmd.bat (x86/x64). Untuk informasi selengkapnya, lihat Membangun di Baris Perintah.

  2. Beralih ke folder output Anda.

  3. Jalankan CMake untuk membuat atau mengonfigurasi aplikasi Anda.

Di Visual Studio 2015, pengguna Visual Studio dapat menggunakan generator CMake untuk menghasilkan file proyek MSBuild, yang kemudian digunakan IDE untuk IntelliSense, penjelajahan, dan kompilasi.