stworzyłem listę plików za pomocą:Jak mogę zainstalować hierarchię plików za pomocą cmake?
file(GLOB_RECURSE DEPLOY_FILES "${PROJECT_SOURCE_DIR}/install/*")
Chcę zainstalować wszystkie te pliki w/usr/myproject/Ale chcę, aby utrzymać drzewo plików zainstalowanego folderu:
install/junk
install/other/junk2
install/other/junk3
Jeśli używam:
install(FILES ${DEPLOY_FILES} DESTINATION "usr/myproject")
Wszystkie pliki kończy się w katalogu/usr/myproject jak:
/usr/myproject/junk
/usr/myproject/junk2
/usr/myproject/junk3
Jak mogę uczynić polecenie instalacji śledź względne ścieżki?
Pracowałem wokół kwestii, wykonując go ręcznie w pętli for:
set(BASE "${PROJECT_SOURCE_DIR}/install")
foreach(ITEM ${DEPLOY_FILES})
get_filename_component(ITEM_PATH ${ITEM} PATH)
string(REPLACE ${BASE} "" ITEM_PATH ${ITEM_PATH})
install(FILES ${ITEM} DESTINATION "usr/myproject${ITEM_PATH}")
endforeach()
... ale to jest denerwujące zrobić. Z pewnością jest łatwiejszy sposób?
(mogę zobaczyć coś w docs instalują chociaż ...)
To po prostu zabawne, w jaki sposób f * & ing trudne mogą wykonać trywialną operację ** 'cp -r' **. – ulidtko