CMake - собрать несколько проектов вместе
От: пффф  
Дата: 01.09.24 18:08
Оценка: :)
Привет

Есть несколько проектов, у каждого свой CMakeLists.txt, в каждом — несколько таргетов.

Хочу собрать всё в один проект, и что-то не очень понятно, как это сделать.

В MSVC я бы просто сделал .sln, и включил бы туда какие угодно проекты, и оно бы без плясок просто собиралось

Да, вмешиваться в структуру каталогов не хочется, и не хочется все эти проекты втащивать в супер-проект — супер-проект лежит рядом, на том же уровне иерархии, и когда я делаю add_subdirectory, CMake'у это не нравится, и он просит указать ещё какой-то доп путь

Далее, в проектах у меня так:

project(project1 C CXX)

set(PRJ_ROOT "${CMAKE_CURRENT_LIST_DIR}")
set(LIB_ROOT "${PRJ_ROOT}/lib")

add_subdirectory(${LIB_ROOT}/mylib1)
add_subdirectory(${LIB_ROOT}/mylib2)



В супер-проекте делаю так

set(PRJ_ROOT "${CMAKE_CURRENT_LIST_DIR}")
set(SUBPROJECTS_ROOT "${PRJ_ROOT}/..")
add_subdirectory(${SUBPROJECTS_ROOT}/project1 "all")


И оно пытается искать либы project1'а в каталоге супер-проекта.

Как правильно сделать то что я хочу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.