Beberapa hari yang lalu Penjana skrip sumber terbuka CMake 3.15 dilepaskan yang bertindak sebagai alternatif kepada Autotools dan digunakan dalam projek seperti KDE, LLVM / Clang, MySQL, MariaDB, ReactOS, dan Blender.
CMake adalah alat penjanaan kod atau automasi pelbagai platform. Nama itu adalah singkatan untuk "cross platform make" (buat cross platform, di luar penggunaan "make" pada nama, CMake adalah suite yang berasingan dan tingkat yang lebih tinggi daripada sistem pembuatan biasa Unix, serupa dengan autotools.
Mengenai CMake
CMake terkenal kerana menyediakan bahasa skrip yang mudah, alat untuk memperluas fungsi merentasi modul, bilangan kebergantungan minimum (tidak mengikat M4, Perl, atau Python), sokongan cache, ketersediaan alat untuk penyusunan silang, sokongan untuk menghasilkan fail pemasangan untuk sistem penyusun dan penyusun yang pelbagai.
Utiliti ctest dan cpack untuk menentukan senario ujian dan pembuatan pakej, dengan utiliti cmake-gui untuk mengkonfigurasi parameter binaan secara interaktif.
CMake digunakan untuk mengendalikan proses penyusunan perisian menggunakan fail konfigurasi yang sederhana dan bebas dari platform. Cmake menghasilkan makefiles asli dan ruang kerja yang boleh digunakan di persekitaran pembangunan yang diinginkan.
Ia setanding dengan sistem build Unix GNU di mana prosesnya dikendalikan oleh fail konfigurasi, dalam hal CMake disebut CMakeLists.txt.
Tidak seperti sistem pembinaan GNU, yang terhad kepada platform Unix, CMake menyokong penghasilan fail untuk pelbagai sistem operasi, yang memudahkan penyelenggaraan dan menghilangkan keperluan untuk memiliki beberapa set fail untuk setiap platform.
Proses membina dikendalikan dengan membuat satu atau lebih fail CMakeLists.txt di setiap direktori (termasuk subdirektori).
Kod CMake ditulis dalam C ++ dan diedarkan di bawah lesen BSD.
CMake 3.15 Ciri Baru Utama
Versi baru ini diserlahkan dengan kedatangan sokongan penjana awal untuk bahasa Swift dibangunkan oleh Apple telah ditambahkan ke penjana skrip pemasangan Ninja Toolkit.
Selain ini, juga ada sokongan untuk pilihan penyusun Clang untuk Windows yang dibina dengan ABI MSVC, tetapi menggunakan pilihan baris arahan gaya GNU.
Pembangun menekankan bahawa pemboleh ubah CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
ditambahkan untuk memilih perpustakaan runtime yang digunakan oleh penyusun ABI MSVC
(Studio Visual MS).
Untuk penyusun seperti MSVC
dalam CMAKE__FLAGS
Secara lalai, senarai bendera kawalan amaran seperti "/ W3" dihentikan.
Dari penambahbaikan lain yang diketengahkan dalam pengumuman pelepasan versi baru ini, kami dapati yang berikut:
- Menambah ungkapan penghasilan '
COMPILE_LANG_AND_ID
: »Untuk menentukan pilihan penyusun untuk fail sasaran yang menggunakan pemboleh ubahCMAKE__COMPILER_ID
yLANGUAGE
untuk setiap fail kod - Ungkapan penjana
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
tambahkan sokongan untuk memadankan nilai dengan senarai, item yang dipisahkan dengan koma - Pemboleh ubah ditambahkan
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, di mana panggilan untuk mencari_package () akan mencari fail konfigurasi pakej terlebih dahulu, walaupun modul carian tersedia - Untuk perpustakaan antara muka, sokongan telah ditambahkan untuk menetapkan sifat
PUBLIC_HEADER y PRIVATE_HEADER
, yang tajuknya dapat dikonfigurasi dengan perintah install (TARGETS) melewati argumenPUBLIC_HEADER
yPRIVATE_HEADER
- Pemboleh ubah ditambahkan
CMAKE_VS_JUST_MY_CODE_DEBUGGING
dan harta tujuanVS_JUST_MY_CODE_DEBUGGING
untuk mengaktifkan mod "Just My Code" dalam debugger Visual Studio ketika menyusun menggunakan MSVC cl 19.05 dan versi yang lebih baru. - Modul FindBoost telah dikerjakan semula, yang kini sedang dikerjakan dengan lebih lengkap dalam mod konfigurasi dan modul dengan adanya modul carian yang lain
- Sokongan untuk jenis NOTIS, VERBOSE, DEBUG, dan TRACE telah ditambahkan pada perintah message ()
- Perintah "eksport (PAKEJ)" sekarang tidak melakukan apa-apa sehingga diaktifkan secara eksplisit melalui pemboleh ubah
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Sekiranya anda ingin mengetahui lebih lanjut mengenainya, anda boleh berjumpa pautan berikut.