Bản cập nhật mới của trình tạo tập lệnh CMake 3.15 đã được phát hành

cmake

Vài ngày trước Trình tạo tập lệnh mã nguồn mở đa nền tảng CMake 3.15 được phát hành hoạt động như một giải pháp thay thế cho Autotools và được sử dụng trong các dự án như KDE, LLVM / Clang, MySQL, MariaDB, ReactOS và Blender.

CMake là một công cụ tự động hóa hoặc tạo mã đa dạng. Tên này là từ viết tắt của "cross platform make" (tạo ra nhiều nền tảng, ngoài việc sử dụng "make" trong tên, CMake là một bộ riêng biệt và cấp cao hơn hệ thống tạo thông thường của Unix, tương tự như các công cụ tự động.

Về CMake

CMake đáng chú ý vì cung cấp một ngôn ngữ kịch bản đơn giản, các công cụ để mở rộng chức năng trên 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ộ nhớ đệm, tính sẵn có của các công cụ để biên dịch chéo, hỗ trợ tạo tệp hợp ngữ cho nhiều hệ thống biên dịch và trình biên dịch.

Các tiện ích ctest và cpack để xác định các kịch bản thử nghiệm và tạo gói, với tiện ích cmake-gui để định cấu hình tương tác các thông số xây dựng.

CMake được sử dụng để kiểm soát quá trình biên dịch của phần mềm bằng các tệp cấu hình đơn giản và độc lập từ nền tảng. Cmake tạo các tệp trang điểm và không gian làm việc gốc có thể được sử dụng trong môi trường phát triển mong muốn.

Nó có thể so sánh với hệ thống xây dựng Unix GNU ở chỗ quá trình được kiểm soát bởi các tệp cấu hình, trong trường hợp CMake được gọi là CMakeLists.txt.

Không giống như hệ thống xây dựng GNU, bị hạn chế đối với các nền tảng Unix, CMake hỗ trợ tạo tệp cho nhiều hệ điều hành khác nhau, giúp bảo trì và loại bỏ nhu cầu phải có nhiều bộ tệp cho mỗi nền tảng.

Quá trình xây dựng được kiểm soát bằng cách tạo một hoặc nhiều tệp CMakeLists.txt trong mỗi thư mục (bao gồm cả thư mục con).

Mã CMake được viết bằng C ++ và được phân phối theo giấy phép BSD.

Các tính năng mới chính của CMake 3.15

Phiên bản mới này được đánh dấu bởi sự xuất hiện của hỗ trợ trình tạo ban đầu cho ngôn ngữ Swift Được phát triển bởi Apple đã được thêm vào trình tạo tập lệnh lắp ráp Ninja Toolkit.

Bên cạnh này, hỗ trợ cũng đến cho tùy chọn trình biên dịch Clang cho Windows được xây dựng bằng ABI MSVC, nhưng sử dụng các tùy chọn dòng lệnh kiểu GNU.

Các nhà phát triển nhấn mạnh rằng các biến CMAKE_MSVC_RUNTIME_LIBRARY y MSVC_RUNTIME_LIBRARY được thêm vào để chọn thư viện thời gian chạy được sử dụng bởi trình biên dịch ABI MSVC (MS VisualStudio).

Đối với các trình biên dịch như MSVCtrong CMAKE__FLAGSTheo mặc định, danh sách các cờ điều khiển cảnh báo như "/ W3" bị dừng.

Trong số những cải tiến khác được đánh dấu trong thông báo về việc phát hành phiên bản mới này, chúng tôi tìm thấy những điều sau:

  • Đã thêm biểu thức tạo 'COMPILE_LANG_AND_ID: »Để xác định các tùy chọn trình biên dịch cho các tệp đích sử dụng các biến CMAKE__COMPILER_ID y LANGUAGE cho mỗi tệp mã
  • Biểu thức máy phát điện C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID y PLATFORM_ID thêm hỗ trợ để so khớp giá trị với danh sách, các mục được phân tách bằng dấu phẩy
  • Biến đã được thêm vào CMAKE_FIND_PACKAGE_PREFER_CONFIG, trong đó lệnh gọi find_package () sẽ tìm kiếm tệp cấu hình gói trước, ngay cả khi mô-đun tìm kiếm có sẵn
  • Đối với thư viện giao diện, hỗ trợ đã được thêm vào để thiết lập thuộc tính PUBLIC_HEADER y PRIVATE_HEADER, mà tiêu đề có thể được cấu hình bằng lệnh cài đặt (TARGETS) truyền các đối số PUBLIC_HEADER y PRIVATE_HEADER
  • Biến đã được thêm vào CMAKE_VS_JUST_MY_CODE_DEBUGGING và tài sản đích VS_JUST_MY_CODE_DEBUGGING để bật chế độ "Just My Code" trong trình gỡ lỗi Visual Studio khi biên dịch bằng MSVC cl 19.05 và các phiên bản mới hơn.
  • Mô-đun FindBoost đã được làm lại, hiện đang được làm việc đầy đủ hơn ở chế độ cấu hình và mô-đun với sự hiện diện của các mô-đun tìm kiếm khác
  • Hỗ trợ cho các loại NOTICE, VERBOSE, DEBUG và TRACE đã được thêm vào lệnh message ()
  • Lệnh "export (PACKAGE)" hiện không có tác dụng gì cho đến khi nó được kích hoạt rõ ràng thông qua biến CMAKE_EXPORT_PACKAGE_REGISTRY.

Nếu bạn muốn biết thêm về nó bạn có thể tham khảo liên kết sau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.