Как я могу использовать qmake для рекурсивного копирования файлов - PullRequest
5 голосов
/ 11 мая 2011

В моем исходном дереве у меня есть куча ресурсов, я хочу скопировать их с помощью make install в мой целевой путь.Поскольку в дереве ресурсов много подкаталогов, я хочу, чтобы qmake рекурсивно находил все файлы.

Я пытался:

   resources.path = /target/path
   resources.files += `find /path/to/resources`
   INSTALLS += resources

и:

    resources.path = /target/path
    resources.files += /path/to/resources/*
    resources.files += /path/to/resources/*/*
    resources.files += /path/to/resources/*/*/*
    resources.files += /path/to/resources/*/*/*/*
    INSTALLS += resources

Оба donу меня нет результата, на который я надеялся.

Ответы [ 2 ]

4 голосов
/ 19 мая 2012

Я сделал это следующим образом:

res.path = $$OUT_PWD/targetfolder
res.files = sourcefolder

INSTALLS += res

это скопирует "wherever this qmake script is"/sourcefolder в buildfolder/"same sub folder on build dir"/targetfolder

, чтобы вы получили targetfolder/sourcefolder/"all other subfolders and files..."

Пример:

#(My .pro file's dir) $$PWD = /mysources/
#(My Build dir)       $$OUT_PWD = /project_build/


extras.path = $$OUT_PWD
extras.files += extras
src.path = $$OUT_PWD
src.files += src

INSTALLS += extras src

Будет копировать /mysources/extras в /project_build/extras и /mysources/src в /project_build/src

2 голосов
/ 19 мая 2011

Похоже, что каталоги устанавливаются с помощью 'cp -r -f', так что вот что получается:

resources.path = /target/path
resources.files += /path/to/resources/dir1
resources.files += /path/to/resources/dir2
resources.files += /path/to/resources/dir3 
resources.files += /path/to/resources/dirn # and so on...
resources.files += /path/to/resources/*    # don't forget the files in the root
INSTALLS += resources
...