Я изучаю cmake и очень быстро учусь. Тем не менее, документация не до нуля. Учебные пособия полезны, но только так далеко.
У меня есть существующий проект, который я хочу преобразовать в cmake.
Структура проекта в настоящее время выглядит следующим образом:
obsys /
obsys / client / {клиентские файлы}
obsys / server / {серверные файлы}
obsys / Utils / включают
obsys / Utils / ЦСИ
Я создал файлы CMakeLists.txt на каждом уровне.
Верхний уровень выглядит сейчас так:
make_minimum_required (VERSION 2.6)
project (osys)
add_subdirectory (server)
add_subdirectory (utils)
Внутри утилит у меня есть CMakeLists.txt, который содержит:
include_directories ("${PROJECT_SOURCE_DIR}/utils/include")
add_subdirectory (src)
и внутри каталога utils src файл CMakeLists.txt содержит:
add_library(utils myException.cpp)
Сервер должен ссылаться на утилиты. Это CMakeLists.txt содержит:
make_minimum_required (VERSION 2.6)
project (server)
include_directories ("../utils/include")
add_executable(serv serv.cpp)
add_subdirectory("../utils/src" utils)
target_link_libraries(obbsd utils)
Идея этого макета заключается в том, что я надеялся, что смогу собрать все это через Makefile верхнего уровня. Или перейдите на сервер или клиент и скомпонуйте их. Так не получается. Каков рекомендуемый способ сделать это?