Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: kambala от Июль 03, 2013, 13:28



Название: [Mac OS X] QMAKE_BUNDLE_DATA не удаляет старые папки перед копированием
Отправлено: kambala от Июль 03, 2013, 13:28
Здравствуйте. Есть в .pro такой кусок:
Код:
macx {
    appresources.files += resources/translations
    appresources.files += resources/data
    appresources.path = Contents/Resources
    QMAKE_BUNDLE_DATA += appresources
}

Если папки translations и data отсутствуют в .app Contents/Resources, то всё копируется нормально. Но если они есть, то повторно копия не выполняется, хотя в makefile написано, что они должны удаляться перед копированием:
Код:
COPY_DIR      = cp -f -R
DEL_FILE      = rm -f

MedianXLOfflineTools.app/Contents/Resources/translations: /Users/svp/mxl_offline_tools/resources/translations
@$(CHK_DIR_EXISTS) MedianXLOfflineTools.app/Contents/Resources || $(MKDIR) MedianXLOfflineTools.app/Contents/Resources
@$(DEL_FILE) -r MedianXLOfflineTools.app/Contents/Resources/translations
@$(COPY_DIR) /Users/svp/mxl_offline_tools/resources/translations MedianXLOfflineTools.app/Contents/Resources/translations

MedianXLOfflineTools.app/Contents/Resources/data: /Users/svp/mxl_offline_tools/resources/data
@$(CHK_DIR_EXISTS) MedianXLOfflineTools.app/Contents/Resources || $(MKDIR) MedianXLOfflineTools.app/Contents/Resources
@$(DEL_FILE) -r MedianXLOfflineTools.app/Contents/Resources/data
@$(COPY_DIR) /Users/svp/mxl_offline_tools/resources/data MedianXLOfflineTools.app/Contents/Resources/data

Можно ли это как-то побороть? Копирование папок происходит до начала сборки, поэтому QMAKE_PRE_LINK и QMAKE_EXTRA_TARGETS не прокатят:
Код:
all: Makefile MedianXLOfflineTools.app/Contents/PkgInfo MedianXLOfflineTools.app/Contents/Resources/empty.lproj MedianXLOfflineTools.app/Contents/Info.plist MedianXLOfflineTools.app/Contents/Resources/icon.icns MedianXLOfflineTools.app/Contents/Resources/translations MedianXLOfflineTools.app/Contents/Resources/data MedianXLOfflineTools.app/Contents/Resources/locversion.plist $(TARGET)

Т.е. можно ли как-то вклиниться в этот 'all' в самом начале? Или как-то узнать папку сборки до вызова qmake (чтобы собирать проект скриптом)?


Название: Re: [Mac OS X] QMAKE_BUNDLE_DATA не удаляет старые папки перед копированием
Отправлено: twp от Июль 18, 2013, 18:57
Возможно это (Pre-pre-build commands with qmake) (http://colby.id.au/pre-pre-build-commands-with-qmake) поможет.
Раньше не смог кинуть поскольку с их сайтом были какие-то проблемы.


Название: Re: [Mac OS X] QMAKE_BUNDLE_DATA не удаляет старые папки перед копированием
Отправлено: kambala от Июль 18, 2013, 20:03
спасибо, попробую. кажется должно подойти.