Не найдя ответа на этот вопрос, я решил опубликовать его здесь. Я пытаюсь настроить небольшую сборку на основе cmake и не уверен, как мне ее решить. Я понимаю, что вопрос касается «как», а не «что», но я открыт для любого альтернативного решения, которое не похоже на взлом.
Мне нужно добавить команду post build, чтобы скопировать некоторые ( import) dll для вывода моей цели:
add_custom_command(TARGET MyTarget POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
$<TARGET_FILE:MyImportedDlls::All>
$<TARGET_FILE_DIR:MyTarget>
)
Я создал скрипт "find" для импортированных dll, который создает одну цель для каждой dll
set(LIB_FILES
"${PATH_TO_LIBS}/lib1.dll"
"${PATH_TO_LIBS}/lib2.dll"
"${PATH_TO_LIBS}/lib3.dll"
)
unset(TARGETS)
foreach(LIB_FILE ${LIB_FILES})
get_filename_component(FN ${LIB_FILE} NAME_WE)
add_library(MyImportedDlls::${FN} SHARED IMPORTED)
set_target_properties(MyImportedDlls::${FN} PROPERTIES IMPORTED_LOCATION "${LIB_FILE}")
list(APPEND TARGETS "MyImportedDlls::${FN}")
endforeach()
Моя проблема: как создать «комбинированную» цель, которую я могу использовать в своей пользовательской команде?