Я пытаюсь скопировать все двоичные файлы, сгенерированные cmake, в определенный каталог. Я не хочу использовать EXECUTABLE_OUTPUT_PATH, хранение их в дереве сборки облегчает разработку.
Поэтому я использую add_custom_command для добавления копии пост-сборки
# set the final binary dir
set(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/bin)
# get name and location of binary, namecan change with os (cf. ".exe" suffix on windows)
GET_TARGET_PROPERTY(EXAMPLE_BIN_NAME example LOCATION)
# copy bin to binary folder
ADD_CUSTOM_COMMAND(TARGET example
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${EXAMPLE_BIN_NAME} ${PROJECT_BINARY_DIR}/.
)
Проблема в том, что при первой сборке папка "bin" не существует (ошибка копирования), но папка "bin" создается сразу после нее. Так что при второй сборке копия работает.
Есть ли способ заставить пользовательскую команду создать папку bin, а затем скопировать двоичный файл?
Или возможно иметь два EXECUTABLE_OUTPUT_PATH с cmake?
Спасибо!