Keluaran sistem binaan CMake 3.17.0

Dikemukakan oleh keluaran penjana skrip binaan terbuka merentas platform CMmake 3.17, yang bertindak sebagai alternatif kepada Autotools dan digunakan dalam projek seperti KDE, LLVM/Clang, MySQL, MariaDB, ReactOS dan Blender. Kod CMake ditulis dalam C++ dan diedarkan di bawah lesen BSD.

CMake terkenal kerana menyediakan bahasa skrip yang mudah, satu cara untuk melanjutkan fungsi melalui modul, bilangan kebergantungan yang minimum (tiada mengikat M4, Perl atau Python), sokongan caching, kehadiran alat untuk kompilasi silang, sokongan untuk menjana binaan fail untuk pelbagai sistem binaan dan penyusun, kehadiran ctest dan utiliti cpack untuk mentakrifkan skrip ujian dan membina pakej, utiliti cmake-gui untuk menetapkan parameter binaan secara interaktif.

Utama penambahbaikan:

  • Penjana skrip pemasangan baharu berdasarkan kit alat Ninja telah ditambah - "Ninja Multi-Config", yang berbeza daripada penjana lama dalam keupayaan untuk memproses beberapa konfigurasi pemasangan sekaligus.
  • Dalam penjana skrip pemasangan untuk Visual Studio muncul keupayaan untuk menentukan fail sumber yang dikaitkan dengan setiap konfigurasi (sumber per-config).
  • Keupayaan untuk menetapkan parameter meta untuk CUDA (β€œcuda_std_03”, β€œcuda_std_14”, dsb.) telah ditambahkan pada alatan untuk menetapkan parameter pengkompil (Ciri Penyusun).
  • Menambahkan pembolehubah "CMAKE_CUDA_RUNTIME_LIBRARY" dan "CUDA_RUNTIME_LIBRARY" untuk memilih jenis perpustakaan masa jalan apabila menggunakan CUDA.
  • Menambahkan modul "FindCUDAToolkit" untuk menentukan kit alat CUDA yang tersedia pada sistem tanpa mendayakan bahasa CUDA.
  • Menambahkan arahan "--debug-find" ke cmake untuk mengeluarkan diagnostik tambahan yang boleh dibaca apabila melakukan operasi carian. Untuk tujuan yang sama, pembolehubah CMAKE_FIND_DEBUG_MODE telah ditambah.
  • Menambahkan sokongan untuk mencari alat CURL menggunakan fail konfigurasi yang dijana cmake "CURLConfig.cmake" pada modul "FindCURL". Untuk melumpuhkan tingkah laku ini, pembolehubah CURL_NO_CURL_CMAKE disediakan.
  • Modul FindPython telah menambah keupayaan untuk mencari komponen Python dalam persekitaran maya yang diuruskan menggunakan "conda".
  • Utiliti ctest telah menambah pilihan "--no-tests=[error|ignore]" untuk mentakrifkan tingkah laku sekiranya tiada ujian dan "--repeat" untuk menetapkan syarat untuk menjalankan ujian semula (sehingga lulus, selepas tamat masa).
  • Sifat sasaran pemasangan INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES dan INTERFACE_LINK_DEPENDS kini dipindahkan antara kebergantungan dalaman pustaka yang dipasang secara statik.
  • Apabila menggunakan kit alat MinGW, carian untuk fail DLL dengan arahan find_library dilumpuhkan secara lalai (sebaliknya, percubaan lalai adalah untuk mengimport perpustakaan ".dll.a").
  • Logik untuk memilih utiliti ninja dalam penjana Ninja kini tidak bergantung pada nama fail boleh laku - utiliti binaan ninja, ninja atau samu pertama yang ditemui dalam laluan yang ditakrifkan melalui pembolehubah persekitaran PATH digunakan.
  • Menambahkan perintah "-E rm" pada cmake yang boleh digunakan untuk mengalih keluar fail dan direktori dan bukannya perintah "-E remove" dan "-E remove_directory" yang berasingan.

Sumber: opennet.ru

Tambah komen