Rilis sistem build CMake 3.16

Disampaikan oleh rilis generator skrip build terbuka lintas platform Buat 3.16, 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:

  • Menambahkan dukungan untuk bahasa Objective C (“OBJC”) dan bahasa Objective
    C++ ("OBJCXX"), yang dapat diaktifkan melalui perintah project() dan aktifkan_bahasa(), setelah itu kode dalam file ".m" ".mm" akan dikompilasi sebagai kode Objective C dan Objective C++, bukan sebagai C++, seperti sebelumnya;

  • Menambahkan dukungan untuk kompiler Clang pada platform Solaris;
  • Menambahkan opsi baris perintah baru: “cmake -E true|false” untuk mencetak kode pengembalian 0 dan 1; "cmake --trace-redirect=" untuk mengalihkan informasi jejak ke file
    "stderr"; perintah "cmake --loglevel" telah diubah namanya menjadi "--log-level" agar sesuai dengan nama perintah lainnya;

  • Menambahkan perintah “target_precompile_headers()” untuk mencantumkan daftar file header yang digunakan selama prakompilasi (mengurangi waktu pembuatan);
  • Menambahkan properti “UNITY_BUILD”, yang mengaktifkan mode batch untuk memproses file sumber di generator guna mempercepat pembangunan;
  • Menambahkan perintah “find_file()”, “find_library()”, “find_path()”,
    "find_package()" dan "find_program()" untuk mencari file, pustaka, jalur, paket, dan executable menurut variabel yang menentukan jalur pencarian untuk berbagai kategori file.
    Variabel "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" dan "CMAKE_FIND_USE_PACKAGE_RE" digunakan untuk mengontrol jalur pencarian dasar GIST RY";

  • Menambahkan mode “file(GET_RUNTIME_DEPENDENCIES)” ke perintah “file()”, yang memungkinkan Anda mengambil daftar pustaka yang digunakan secara rekursif saat menautkan file atau pustaka yang dapat dieksekusi secara dinamis. Mode ini menggantikan perintah GetPrerequisites(), yang kini sudah tidak digunakan lagi;
  • Perintah “ctest(1)” mengimplementasikan kemampuan untuk membuat serialisasi pengujian berdasarkan sumber daya yang diperlukan untuk setiap pengujian;
  • Variabel "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" sudah tidak digunakan lagi dan harus diganti dengan "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Peningkatan dukungan platform AIX. Saat menggunakan properti "ENABLE_EXPORTS", selain file yang dapat dieksekusi, file impor untuk linker sekarang dibuat, disimpan dengan ekstensi ".imp". Pada plugin yang dibuat dengan memanggil "add_library()" dengan opsi "MODULE", file ini dapat digunakan saat menautkan menggunakan perintah "target_link_libraries()". Penautan waktu proses di AIX dinonaktifkan secara default karena CMake kini menyediakan semua informasi simbol yang diperlukan untuk penautan pada waktu buka. Untuk menggunakan penautan runtime perpustakaan dinamis atau modul yang dapat dimuat, Anda harus secara eksplisit menentukan opsi “-Wl, -G” dalam daftar tanda startup linker, yang ditentukan melalui variabel “CMAKE_SHARED_LINKER_FLAGS” dan “CMAKE_MODULE_LINKER_FLAGS”.

Sumber: opennet.ru

Tambah komentar