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

CMake

CMake là một hệ thống xây dựng đa nền tảng mạnh mẽ giúp tạo các tệp xây dựng, Makefile hoặc không gian làm việc cho các nền tảng và trình biên dịch khác nhau. Không giống như các hệ thống xây dựng khác, CMake không thực sự xây dựng dự án, nó chỉ tạo các tệp cần thiết cho các công cụ xây dựng. CMake được sử dụng rộng rãi, đặc biệt là trong các dự án C++, vì tính linh hoạt và dễ sử dụng của nó.

CMakeLists.txt

CMake sử dụng tệp có tên CMakeLists.txt để xác định cài đặt, tệp nguồn, thư viện và các cấu hình khác. Một CMakeLists.txt điển hình cho một dự án đơn giản sẽ như sau:

cmake_minimum_required(VERSION 3.0)
 
project(MyProject)
 
set(SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/src")
set(SOURCES "${SRC_DIR}/main.cpp" "${SRC_DIR}/file1.cpp" "${SRC_DIR}/file2.cpp")
 
add_executable(${PROJECT_NAME} ${SOURCES})
 
target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/include")
 
set_target_properties(${PROJECT_NAME} PROPERTIES
    CXX_STANDARD 14
    CXX_STANDARD_REQUIRED ON
    CXX_EXTENSIONS OFF
)

Xây dựng với CMake

Đây là một ví dụ về quy trình xây dựng đơn giản bằng CMake:

  • Tạo một thư mục mới cho bản dựng.
    mkdir build
    cd build
  • Tạo tệp xây dựng bằng CMake.
    cmake ..

Trong ví dụ này, .. cho biết thư mục mẹ chứa CMakeLists.txt. Các tệp bản dựng sẽ được tạo trong thư mục build.

  • Xây dựng dự án bằng các tệp xây dựng được tạo.
    make

Hoặc, trên Windows với Visual Studio, bạn có thể sử dụng:

msbuild MyProject.sln

CMake giúp dễ dàng quản lý các dự án lớn, xác định cấu hình bản dựng tùy chỉnh và làm việc với nhiều trình biên dịch và hệ điều hành khác nhau. Làm cho nó trở thành một công cụ được lựa chọn rộng rãi để quản lý các hệ thống xây dựng trong các dự án C++.