Rilis sistem build CMake 3.17.0

Disampaikan oleh rilis generator skrip build terbuka lintas platform Buat 3.17, yang bertindak sebagai alternatif untuk Autotools dan digunakan dalam proyek-proyek seperti KDE, LLVM/Clang, MySQL, MariaDB, ReactOS dan Blender. Kode CMake ditulis dalam C++ dan didistribusikan di bawah lisensi BSD.

CMake terkenal karena menyediakan bahasa skrip yang sederhana, sarana untuk memperluas fungsionalitas melalui modul, jumlah dependensi yang minimal (tidak terikat pada M4, Perl atau Python), dukungan caching, kehadiran alat untuk kompilasi silang, dukungan untuk menghasilkan build file untuk berbagai sistem build dan kompiler, keberadaan utilitas ctest dan cpack untuk menentukan skrip pengujian dan paket build, utilitas cmake-gui untuk mengatur parameter build secara interaktif.

Utama perbaikan:

  • Generator skrip perakitan baru berdasarkan toolkit Ninja telah ditambahkan - "Ninja Multi-Config", yang berbeda dari generator lama dalam kemampuannya memproses beberapa konfigurasi perakitan sekaligus.
  • Di generator skrip perakitan untuk Visual Studio muncul kemampuan untuk menentukan file sumber yang terkait dengan setiap konfigurasi (sumber per-konfigurasi).
  • Kemampuan untuk mengatur parameter meta untuk CUDA (β€œcuda_std_03”, β€œcuda_std_14”, dll.) telah ditambahkan ke alat untuk mengatur parameter compiler (Fitur Kompilasi).
  • Menambahkan variabel "CMAKE_CUDA_RUNTIME_LIBRARY" dan "CUDA_RUNTIME_LIBRARY" untuk memilih jenis perpustakaan runtime saat menggunakan CUDA.
  • Menambahkan modul "FindCUDAToolkit" untuk menentukan toolkit CUDA yang tersedia di sistem tanpa mengaktifkan bahasa CUDA.
  • Menambahkan perintah "--debug-find" ke cmake untuk menghasilkan diagnostik tambahan yang dapat dibaca saat melakukan operasi pencarian. Untuk tujuan serupa, variabel CMAKE_FIND_DEBUG_MODE telah ditambahkan.
  • Menambahkan dukungan untuk mencari alat CURL menggunakan file konfigurasi yang dihasilkan cmake β€œCURLConfig.cmake” ke modul β€œFindCURL”. Untuk menonaktifkan perilaku ini, variabel CURL_NO_CURL_CMAKE disediakan.
  • Modul FindPython telah menambahkan kemampuan untuk mencari komponen Python di lingkungan virtual yang dikelola menggunakan β€œconda”.
  • Utilitas ctest telah menambahkan opsi β€œ--no-tests=[error|ignore]” untuk menentukan perilaku jika tidak ada pengujian dan β€œ--repeat” untuk mengatur kondisi untuk menjalankan kembali pengujian (sampai lulus, setelah batas waktu).
  • Properti target perakitan INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES, dan INTERFACE_LINK_DEPENDS kini ditransfer di antara dependensi internal perpustakaan yang dirakit secara statis.
  • Saat menggunakan toolkit MinGW, pencarian file DLL dengan perintah find_library dinonaktifkan secara default (sebagai gantinya, upaya default adalah mengimpor perpustakaan ".dll.a").
  • Logika untuk memilih utilitas ninja di generator Ninja sekarang tidak bergantung pada nama file yang dapat dieksekusi - utilitas ninja-build, ninja, atau samu pertama yang ditemukan di jalur yang ditentukan melalui variabel lingkungan PATH digunakan.
  • Menambahkan perintah "-E rm" ke cmake yang dapat digunakan untuk menghapus file dan direktori alih-alih perintah "-E hapus" dan "-E hapus_direktori" yang terpisah.

Sumber: opennet.ru

Tambah komentar