Seperti dalam jawaban Oleg, saya percaya variabel yang benar untuk ditetapkan adalah CMAKE_RUNTIME_OUTPUT_DIRECTORY . Kami menggunakan yang berikut ini di root CMakeLists.txt kami:
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)
Anda juga dapat menentukan direktori keluaran berdasarkan per target:
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"
)
Dalam kedua kasus, Anda dapat menambahkan _[CONFIG]
untuk nama variabel / properti untuk membuat direktori keluaran berlaku untuk konfigurasi tertentu (nilai standar untuk konfigurasi yang DEBUG
, RELEASE
, MINSIZEREL
dan RELWITHDEBINFO
).