Como en la respuesta de Oleg, creo que la variable correcta para establecer es CMAKE_RUNTIME_OUTPUT_DIRECTORY . Usamos lo siguiente en nuestra raíz 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)
También puede especificar los directorios de salida 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"
)
En ambos casos se puede añadir _[CONFIG]
al nombre de variable / propiedad para hacer el directorio de salida se aplica a una configuración específica (los valores estándar de configuración son DEBUG
, RELEASE
, MINSIZEREL
y RELWITHDEBINFO
).