Phát hành hệ thống xây dựng CMake 3.16

giới thiệu phát hành trình tạo tập lệnh xây dựng mở đa nền tảng CMake 3.16, hoạt động thay thế cho Autotools và được sử dụng trong các dự án như KDE, LLVM/Clang, MySQL, MariaDB, ReactOS và Blender. Mã CMake được viết bằng C++ và được phân phối theo giấy phép BSD.

CMake đáng chú ý vì cung cấp ngôn ngữ kịch bản đơn giản, phương tiện mở rộng chức năng thông qua các mô-đun, số lượng phụ thuộc tối thiểu (không ràng buộc với M4, Perl hoặc Python), hỗ trợ bộ đệm, sự hiện diện của các công cụ để biên dịch chéo, hỗ trợ tạo bản dựng các tệp dành cho nhiều hệ thống xây dựng và trình biên dịch, tiện ích ctest và cpack hiện diện để xác định tập lệnh kiểm tra và gói xây dựng, tiện ích cmake-gui để thiết lập các tham số bản dựng một cách tương tác.

Chính cải tiến:

  • Đã thêm hỗ trợ cho ngôn ngữ Objective C (“OBJC”) và Objective
    C++ ("OBJCXX"), có thể được kích hoạt thông qua các lệnh project() và Enable_lingu(), sau đó mã trong tệp ".m" ".mm" sẽ biên dịch thành mã Mục tiêu C và Mục tiêu C++, thay vì dưới dạng C++, như trước đây;

  • Đã thêm hỗ trợ cho trình biên dịch Clang trên nền tảng Solaris;
  • Đã thêm tùy chọn dòng lệnh mới: “cmake -E true|false” để in mã trả về 0 và 1; "cmake --trace-redirect=" để chuyển hướng thông tin theo dõi đến một tập tin
    "stderr"; lệnh "cmake --loglevel" đã được đổi tên thành "--log-level" để phù hợp với tên của các lệnh khác;

  • Đã thêm lệnh “target_precompile_headers()” để liệt kê danh sách các tệp tiêu đề được sử dụng trong quá trình biên dịch trước (giảm thời gian xây dựng);
  • Đã thêm thuộc tính “UNITY_BUILD”, kích hoạt chế độ hàng loạt để xử lý tệp nguồn trong trình tạo nhằm tăng tốc độ xây dựng;
  • Đã thêm lệnh “find_file()”, “find_library()”, “find_path()”,
    "find_package()" và "find_program()" để tìm kiếm tệp, thư viện, đường dẫn, gói và tệp thực thi theo các biến xác định đường dẫn tìm kiếm cho các loại tệp khác nhau.
    Các biến "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" và "CMAKE_FIND_USE_PACKAGE_REGIST" được sử dụng để kiểm soát các đường dẫn tìm kiếm cơ sở RY";

  • Đã thêm chế độ “file(GET_RUNTIME_DEPENDENCIES)” vào lệnh “file()”, cho phép bạn truy xuất đệ quy danh sách các thư viện được sử dụng khi liên kết động một tệp hoặc thư viện thực thi. Chế độ này đã thay thế lệnh GetPreRequirements(), hiện không còn được dùng nữa;
  • Lệnh “ctest(1)” triển khai khả năng tuần tự hóa các bài kiểm tra dựa trên tài nguyên cần thiết cho mỗi bài kiểm tra;
  • Biến "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" không được dùng nữa và nên được thay thế bằng "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Hỗ trợ nền tảng AIX được cải thiện. Khi sử dụng thuộc tính "ENABLE_EXPORTS", ngoài tệp thực thi, tệp nhập cho trình liên kết hiện được tạo, được lưu với phần mở rộng ".imp". Trong các plugin được tạo bằng cách gọi "add_library()" với tùy chọn "MODULE", tệp này có thể được sử dụng khi liên kết bằng lệnh "target_link_libraries()". Liên kết thời gian chạy trên AIX bị tắt theo mặc định vì CMake hiện cung cấp tất cả thông tin ký hiệu cần thiết để liên kết khi tải. Để sử dụng liên kết thời gian chạy của các thư viện động hoặc mô-đun có thể tải, bạn phải chỉ định rõ ràng các tùy chọn “-Wl, -G” trong danh sách cờ khởi động trình liên kết, được xác định thông qua các biến “CMAKE_SHARED_LINKER_FLAGS” và “CMAKE_MODULE_LINKER_FLAGS”.

Nguồn: opennet.ru

Thêm một lời nhận xét