03. Минимальный CMakeLists.txt

Минимальный CMakeLists.txt

Минимальный файл CMakeLists.txt содержит всего 3 строки

cmake_minimum_required(VERSION 3.0.0)
project(App123)

add_executable(myApp main.cpp)

Разберем подробнее что делается в каждой из строк

>>Минимальная версия cmake
cmake_minimum_required(VERSION 3.2)#минимальная версия cmake — иначе выдаст ошибку т.к. версии имеют разлизия и в новых версиях появляются фичи. данная строка указывает какой версией cmake собирать проект

>> Имя проекта

project(Prj_Name)#имя проекта — оно же запишется в переменную ${PROJECT_NAME}

project(Prj_Name VERSION 0.1.0) #имя проекта + текущая версия (правится вручную)

самая расширенная версия
project(Prj_Name

VERSION 0.0.1

LANGUAGES C CXX ASM JAVA)#проверится наличие компиляторов для указанных языков

>> Добавление исполняемого файла (указываем какие файлы нужны для сборки)

add_executable(myApp main.cpp) #добавляем название исполняемого файла и исходники

add_executable(myApp main.cpp file2.cpp) #тоже самое но с несколькими файлами

#можно сделать так
add_executable(${PROJECT_NAME} main.cpp) #добавляем название исполняемого файла и исходники

add_executable(${PROJECT_NAME} WIN32 or MACOSX_BUNDLE or EXCLUDE_FROM_ALL main.cpp) #указываем что приложение графическое

WIN32 – точка входа WinMain
Если целевая платформа не софпадает с выбранной -флаг игнорируется

EXCLUDE_FROM_ALL – исключает этот таргет из цели ALL

 

>> Запуск сборки

  1. лучше создать папку build
  2. выполнить команду cmake .. # .. т.к. CMakeList находится выше на 1 директорию
  3. выполнить команду make

есть 2 способ, он более новый и рекомендуется к использованию

  1. лучше создать папку build
  2. выполнить команду cmake —build ..

Отдельно стоит написать про возможности сборки release и debug версий
cmake —build .. —config Release, чтобы получить сборку релиза.
без указания происходит сборка debug

или работать с переменными
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Debug ..

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *