Изменения

Перейти к: навигация, поиск

CMake Tutorial

343 байта добавлено, 01:35, 23 июня 2019
Указание необходимой версии cmake
это дело где-нибудь еще, вам нужно просто запустить там cmake, который сделает всё сам. Удобно, полезно, просто.
=== Если по лайту Краткое описание ===
Если нет желания/времени/сил читать весь туториал и Вы используете какой-нибудь QtCreator (или любая другая IDE, умеющая работать с cmake), то:
Предполагается, что найти и скачать сам cmake ты, %username%, в состоянии. //а если нет?
Предположим, у Вас есть исходничек "test.cpp" (// а если нет?)(А если нет, то CMake тебе трогать рано).
Для начала нужно создать файлик для cmake, который обычно называют "CMakeLists.txt", и написать туда вот это:
А у Вас в папочке появится исполняемый файл "test". Запустите, убедитесь, что это действительно то, что ожидается от компилляции файла "test.cpp".
= We need to go deeper Подробное описание =
Поразбираемся с различными возможностями cmake.
cmake_minimum_required(VERSION 2.6)
Указывайте высокую минимальную версию CMake.
Если используемая версия cmake меньше 2.6, он не захочет работать. Писать эту команду всегда - хороший стиль (cmake будет пыхтеть и обижаться, если вы не укажете версию, но собирать всё равно всё будет).
find_package(Boost COMPONENTS chrono filesystem REQUIRED)
set(CMAKE_CXX_FLAGS "$\$${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
set(SRC_LIST lib1/main.cpp lib2/main.cpp main.cpp)
add_executable($\$${PROJECT_NAME} $\$${SRC_LIST}) target_link_libraries($\$${PROJECT_NAME} $\$${Boost_LIBRARIES})
Если Вам что-то в нём не понятно - перечитайте соответствующую информацию выше.
./subdir/CMakeLists.txt
project(MegaLibrary)
set(SOURCES "lib.cpp") set(HEADERS "lib.h") add_library(lib $\$${SOURCES} $\$${HEADERS}) target_include_directories(lib PUBLIC $\$${CMAKE_CURRENT_SOURCE_DIR})
./CMakeLists.txt
project(MainProject)
set(MAIN_PROJECT_SRC_LIST main)
# Other stuff
include_directories(subdir) add_executable(main $\$${MAIN_PROJECT_SRC_LIST})
add_subdirectory(subdir)
target_link_libraries(main lib)
Теперь можно в файлах основного проекта делать #include "lib.h"(см. документацию по target_include_directories).
В ./build запускаем "cmake .. && make" и получаем собранный проект.
=== Как добавить header в проект, чтобы его было видно в списке файлов ===
Если вы создали файл header.h в директорию проекта, просто строчку "  add_executable($\$${PROJECT_NAME} $\$${SRC_LIST})"  измените на   add_executable($\$${PROJECT_NAME} $\$${SRC_LIST} "header.h")
Анонимный участник

Навигация