Полное руководство по созданию файла CMake: методы и примеры кода

CMake – популярная система сборки, используемая при разработке программного обеспечения для управления процессом сборки проектов, написанных на различных языках программирования. В этой статье мы рассмотрим несколько способов создания файла CMake (CMakeLists.txt) с примерами кода. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это подробное руководство предоставит вам знания, необходимые для эффективного использования CMake в ваших проектах.

Метод 1: минимальный файл CMake
Ниже приведен минимальный файл CMake, в котором задается имя проекта и минимальная необходимая версия CMake:

cmake_minimum_required(VERSION 3.0)
project(MyProject)

Метод 2: добавление исходных файлов
Чтобы включить исходные файлы в проект, используйте команды add_executableили add_library. Вот пример добавления исходных файлов для создания исполняемого файла:

add_executable(MyExecutable main.cpp file1.cpp file2.cpp)

Метод 3: связывание библиотек
Если ваш проект зависит от внешних библиотек, вы можете использовать команду target_link_libraries, чтобы связать их. Вот пример:

target_link_libraries(MyExecutable PUBLIC MyLibrary)

Метод 4: включение каталогов
Чтобы включить каталоги, содержащие файлы заголовков, используйте команду target_include_directories. Вот пример:

target_include_directories(MyExecutable PUBLIC include)

Метод 5: установка флагов компилятора
Вы можете установить флаги компилятора с помощью команды target_compile_options. Вот пример:

target_compile_options(MyExecutable PRIVATE -Wall -Wextra)

Метод 6: Условная компиляция
CMake позволяет использовать условные операторы для управления процессом сборки. Вот пример:

if(BUILD_FEATURE_ENABLED)
    target_compile_definitions(MyExecutable PRIVATE ENABLE_FEATURE)
endif()

Метод 7: пользовательские команды
Вы можете определить собственные команды сборки с помощью команд add_custom_commandили add_custom_target. Вот пример:

add_custom_command(
    OUTPUT output.txt
    COMMAND generate_output > output.txt
    DEPENDS generate_output
)
add_custom_target(GenerateOutput DEPENDS output.txt)

В этой статье мы рассмотрели несколько методов создания файла CMake, включая настройку минимального файла, добавление исходных файлов, связывание библиотек, включая каталоги, установку флагов компилятора, условную компиляцию и определение пользовательских команд. Используя эти методы, вы сможете эффективно управлять процессом сборки и создавать надежные и масштабируемые проекты с помощью CMake.