Не полный ответ, но слишком много для комментария:
Вы можете определить выходные каталоги для исполняемых файлов, общих объектов и библиотек для проекта следующим образом:
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
Икогда вы определяете, где строить, у вас теперь есть общий выходной каталог по общеизвестному путиКаталоги также можно задавать на основе конфигурации (Debug/Release/RelWithDebInfo/...
) следующим образом:
CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG
CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE
CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO
Надеюсь, что это поможет вам в дальнейшем.