Привет
Есть несколько проектов, у каждого свой 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'а в каталоге супер-проекта.
Как правильно сделать то что я хочу?