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++.