cmake jak skopiowac dodatkowe pliki z bibioteki do folderu aplikacji (podczas budowania)

0

LIB1 , biblioteka statyczna ktora podczas dzialania wymaga plików z folderu "settings"
src => źródła biblioteki
settings => folder z plikami binarnymi wymaganymi przez bibliotekę w czasie uruchomienia

aux_source_directory(src SRC_FILES)
add_library(lib1 STATIC ${SRC_FILES})
set(LIB1_DIR_SETTINGS ${CMAKE_CURRENT_SOURCE_DIR}/settings CACHE STRING "Module folder settings"  )
target_include_directories(lib1 PUBLIC .)

APP1 , aplikacja która używa lib1 , aby skopiować plik binarne z biblioteki używam add_custom_command oraz zmiennej ${LIB1_DIR_SETTINGS}

 add_executable(app1  main.cpp)
 target_link_libraries(app1  lib1)
 add_custom_command(TARGET app1 POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIB1_DIR_SETTINGS} ${CMAKE_CURRENT_BINARY_DIR}/settings  )

Czy da rade to zrobić jakoś lepiej ?
Czy samo użycie biblioteki mogło wy wymusić jakieś zdarzenie POST_BUILD w miejscu gdzie jest użyta ?

0

Użyj install(FILE/DIRECTORY ... DESTINATION ...) jeżeli chcesz pojedynczy plik, lub cały katalog. Niemniej jednak to pewnie będzie wymagało dodania CPacka (include CPack)

1 użytkowników online, w tym zalogowanych: 0, gości: 1