Beberapa hari yang lalu CMake 3.15 generator skrip open source lintas platform dirilis yang bertindak sebagai alternatif untuk Autotools dan digunakan dalam proyek seperti KDE, LLVM / Clang, MySQL, MariaDB, ReactOS, dan Blender.
CMake adalah pembuatan kode multiplatform atau alat otomatisasi. Nama tersebut merupakan singkatan dari "cross platform make" (make cross platform, di luar penggunaan "make" pada namanya, CMake adalah suite terpisah dan tingkat yang lebih tinggi dari sistem make umum dari Unix, mirip dengan autotools.
Tentang CMake
Buat terkenal karena menyediakan bahasa skrip sederhana, alat untuk memperluas fungsionalitas di seluruh modul, jumlah minimal ketergantungan (tidak terikat ke M4, Perl, atau Python), dukungan caching, ketersediaan alat untuk kompilasi silang, dukungan untuk menghasilkan file rakitan untuk berbagai sistem kompilator dan kompiler.
Utilitas ctest dan cpack untuk menentukan skenario pengujian dan pembuatan paket, dengan utilitas cmake-gui untuk mengonfigurasi parameter build secara interaktif.
CMake digunakan untuk mengontrol proses kompilasi perangkat lunak menggunakan file konfigurasi sederhana dan independen dari platform. Cmake menghasilkan makefile dan ruang kerja asli yang dapat digunakan di lingkungan pengembangan yang diinginkan.
Ini sebanding dengan sistem build GNU Unix yang prosesnya dikontrol oleh file konfigurasi, dalam kasus CMake disebut CMakeLists.txt.
Berbeda dengan sistem build GNU, yang dibatasi untuk platform Unix, CMake mendukung pembuatan file untuk berbagai sistem operasi, yang memfasilitasi pemeliharaan dan menghilangkan kebutuhan untuk memiliki beberapa set file untuk setiap platform.
Proses build dikontrol dengan membuat satu atau beberapa file CMakeLists.txt di setiap direktori (termasuk subdirektori).
Kode CMake ditulis dalam C ++ dan didistribusikan di bawah lisensi BSD.
Fitur baru utama CMake 3.15
Versi baru ini disorot oleh kedatangan dukungan generator awal untuk bahasa Swift Dikembangkan oleh Apple telah ditambahkan ke generator skrip perakitan Ninja Toolkit.
Selain ini, juga dilengkapi dukungan untuk opsi compiler Clang untuk Windows yang dibangun dengan ABI MSVC, tetapi menggunakan opsi baris perintah gaya GNU.
Para pengembang menekankan bahwa variabel CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
ditambahkan untuk memilih pustaka runtime yang digunakan oleh kompiler ABI MSVC
(MSVisual Studio).
Untuk penyusun seperti MSVC
di CMAKE__FLAGS
Secara default, daftar flag kontrol peringatan seperti "/ W3" dihentikan.
Dari perbaikan lain yang disorot dalam pengumuman rilis versi baru ini, kami menemukan yang berikut:
- Menambahkan ekspresi penghasil '
COMPILE_LANG_AND_ID
: »Untuk menentukan opsi kompilator untuk file target yang menggunakan variabelCMAKE__COMPILER_ID
yLANGUAGE
untuk setiap file kode - Ekspresi generator
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
menambahkan dukungan untuk mencocokkan nilai ke daftar, item yang dipisahkan koma - Variabel telah ditambahkan
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, di mana panggilan ke find_package () akan mencari file konfigurasi paket terlebih dahulu, meskipun modul pencarian tersedia - Untuk pustaka antarmuka, dukungan telah ditambahkan untuk mengatur properti
PUBLIC_HEADER y PRIVATE_HEADER
, yang headernya dapat dikonfigurasi dengan perintah instal (TARGET) yang meneruskan argumenPUBLIC_HEADER
yPRIVATE_HEADER
- Variabel telah ditambahkan
CMAKE_VS_JUST_MY_CODE_DEBUGGING
dan properti tujuanVS_JUST_MY_CODE_DEBUGGING
untuk mengaktifkan mode "Just My Code" di debugger Visual Studio saat menyusun menggunakan MSVC cl 19.05 dan versi yang lebih baru. - Modul FindBoost telah dikerjakan ulang, yang sekarang sedang bekerja lebih lengkap dalam konfigurasi dan mode modul dengan hadirnya modul pencarian lainnya
- Dukungan untuk jenis NOTICE, VERBOSE, DEBUG, dan TRACE telah ditambahkan ke perintah message ()
- Perintah "export (PACKAGE)" sekarang tidak melakukan apa-apa hingga secara eksplisit diaktifkan melalui variabel
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Jika Anda ingin tahu lebih banyak tentang itu Anda bisa berkonsultasi link berikut.