Да, но не очень красиво ...
Вам потребуется обновить RUNTIME_OUTPUT_DIRECTORY , LIBRARY_OUTPUT_DIRECTORY и ARCHIVE_OUTPUT_DIRECTORY для ALL ваших целей. И вам нужно будет сделать это для каждой конфигурации (Debug, RelWithDebInfo и т. Д.)
Самый простой способ - сделать это "глобально" с их эквивалентами CMAKE _... Например. проверьте следующий пример, который устанавливает bin / и lib / в качестве «глобальных» выходных каталогов двоичных файлов / библиотек:
# First for the generic no-config case (e.g. with mingw)
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 )
# Second, for multi-config builds (e.g. msvc)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib )
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
В качестве альтернативы, вы можете попытаться пройти через все доступные цели и изменить их свойства впоследствии ...
Обратите внимание, что это не устанавливает местоположение ваших файлов .pdb. Я до сих пор не нашел удовлетворительного способа поместить все соответствующие файлы .pdb в каталог bin /.