54
правки
Изменения
Нет описания правки
В качестве библиотек нужно указать пути к необходимым собранным библиотекам. cmake нашел указанные нами библиотеки и записал в переменную, чем мы и пользуемся.
=== Пример хорошего CMakeLists.txt и где он будет лежать ===
Итак, полный пример использования всего этого. У нас есть некая директория (отныне считаем ее "/sources"), и в ней лежат исходники
/sources/lib1/main.cpp
/sources/lib2/main.cpp
/sources/main.cpp
В корне "/" лежит файл "/CMakeLists.txt":
cmake_minimum_required(VERSION 2.8)
project_name(cmake-example)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
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})
Если Вам что-то в нём не понятно - перечитайте соответствующую информацию выше.
Создаем директорию "/build" ('''не''' "/sources/build"), переходим в нее, запускаем в ней "cmake ..".
".." - метка родительской директории.
cmake возьмет из нее наш CMakeLists.txt и по нему создаст проект в папке "/build".
Чтобы проект собрать, запускаем "make" в той же папке "/build".
Таким образом, в корне у нас есть:
* CMakeLists.txt
* директория с исходниками
* каталог сборки
Все разделено, автоматизировано и удобно.