Como na resposta de Oleg, acredito que a variável correta a ser definida é CMAKE_RUNTIME_OUTPUT_DIRECTORY . Usamos o seguinte em nossa raiz CMakeLists.txt:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
Você também pode especificar os diretórios de saída por destino:
set_target_properties( targets...
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
Em ambos os casos, você pode acrescentar _[CONFIG]
ao nome da variável / propriedade para fazer o diretório de saída aplicam-se a uma configuração específica (os valores padrão para a configuração são DEBUG
, RELEASE
, MINSIZEREL
e RELWITHDEBINFO
).