Минимальный 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_NameVERSION 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
>> Запуск сборки
- лучше создать папку build
- выполнить команду cmake .. # .. т.к. CMakeList находится выше на 1 директорию
- выполнить команду make
есть 2 способ, он более новый и рекомендуется к использованию
- лучше создать папку build
- выполнить команду cmake —build ..
Отдельно стоит написать про возможности сборки release и debug версий
cmake —build .. —config Release, чтобы получить сборку релиза.
без указания происходит сборка debugили работать с переменными
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Debug ..