Trang tài liệu
Khóa học C++ nền tảng
Chương 17. Hệ thống xây dựng
Ninja

Ninja

Ninja là một hệ thống xây dựng nhỏ tập trung vào tốc độ. Nó được thiết kế để xử lý các dự án lớn bằng cách tạo các tệp xây dựng thực hiện khối lượng công việc tối thiểu cần thiết để xây dựng mã code. Điều này dẫn đến thời gian xây dựng nhanh hơn, đặc biệt đối với các cơ sở mã lớn. Ninja thường được sử dụng cùng với các hệ thống xây dựng khác như CMake, hệ thống này có thể tạo các tệp xây dựng Ninja cho bạn.

Các tệp bản dựng ninja thường được đặt tên là build.ninja và chứa các quy tắc, câu lệnh xây dựng và khai báo biến. Đây là một ví dụ đơn giản về tệp xây dựng Ninja cho dự án C++:

# Variable declarations
cxx = g++
cflags = -Wall -Wextra -std=c++17
 
# Rule for compiling the C++ files
rule cxx_compile
  command = $cxx $cflags -c $in -o $out
 
# Build statements for the source files
build main.o: cxx_compile main.cpp
build foo.o: cxx_compile foo.cpp
 
# Rule for linking the object files
rule link
  command = $cxx $in -o $out
 
# Build statement for the final executable
build my_program: link main.o foo.o

Để xây dựng dự án bằng tệp build.ninja này, chỉ cần chạy ninja trong thiết bị đầu cuối:

$ ninja

Thao tác này sẽ xây dựng tệp thực thi my_program bằng cách trước tiên biên dịch các tệp main.cpp và foo.cpp thành các tệp đối tượng, sau đó liên kết chúng lại với nhau.