Я пару дней читал о том, как копировать / обновлять внешние ресурсы, плагины или фреймворки в Mac Mac из моего приложения, используя Qt creator или qmake.
Сейчас я нашел два основных решения.Одним из них является использование qmake вместе с некоторыми командами в файле .pro.Другой - сделать скрипт «Custom Deployment Step».
Я надеялся использовать второй вариант, потому что у меня уже был маленький скрипт make, который делал то, что я хотел.Проблема в том, что Qt Creator предлагает так мало переменных для работы, что скрипт потерял свою полезность.Например, мой сценарий использует «Путь к целевому приложению» в качестве параметра, чтобы он мог выполнять всю свою работу оттуда.Но, пожалуйста, поправьте меня, если я ошибаюсь, Qt Creator предлагает только переменные% {buildDir} и% {sourceDir} ...
Другой вариант - использование qmake.Это то, что я до сих пор пробовал в своем файле ".pro":
1) Используя команду INSTALL .Я провел небольшой тест, в котором я попытался скопировать некоторые файлы следующим образом:
MediaFiles.path = test/media
MediaFiles.files = media/*
INSTALL += MediaFiles
И в основном ничего не произошло.Я прыгал, чтобы найти ту же папку «media» в папке «test», но ничего.Не знаю, делаю ли я что-то не так.
Обратите внимание, что папка «media» находится рядом с папкой «test» и файлом «.pro».(Все они имеют одинаковую иерархическую позицию.)
2) Затем я попытался QMAKE_BUNDLE_DATA :
MediaFiles.path = Contents/MacOS
MediaFiles.files = media/*
QMAKE_BUNDLE_DATA += MediaFiles
Но это дало мне следующую ошибку:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
make: *** [PathToApp] Error 64
Пока что ни одно из решений не выглядит приятным.Если я хочу сделать хороший скрипт для создания, мне нужно будет жестко закодировать каждый целевой путь отдельно.В моем случае у меня есть 8 различных целевых путей в зависимости от некоторых переменных «CONFIG».
Я уверен, что решение qmake является официальным способом сделать это.Если кто-то может подсказать мне, решение проблемы 64 было бы круто.
Еще один вопрос: нужно ли делать qmake каждый раз, когда я хочу обновить свой пакет?Могу ли я выполнить свой скрипт make с помощью qmake?