Подтвердить что ты не робот

Скопируйте файл в каталог сборки после компиляции проекта с помощью Qt

У меня есть файл "settings.ini", который должен находиться рядом с исполняемым файлом Qt.

В Qt Creator я могу добавить настраиваемый шаг сборки, который вызывает что-то вроде этого:

copy %{sourceDir}/settings.ini %{buildDir}/settings.ini

Это отлично работает до сих пор, но я хотел бы включить его в файл *.pro, чтобы я мог также включить его в наш SVN.

Как это сделать, используя только qmake/.pro файлы?

4b9b3361

Ответ 1

Вероятно, вы хотите использовать ключевое слово INSTALLS в QMake. Это потребует, чтобы вы выполнили make install после сборки, но он работает кросс-платформенный.

install_it.path = %{buildDir}
install_it.files += %{sourceDir}/settings.ini

INSTALLS += install_it

Ответ 2

Чтобы скопировать %{sourceDir}/settings.ini в каталог сборки без, требующий вызова make install, используйте:

copydata.commands = $(COPY_DIR) $$PWD/settings.ini $$OUT_PWD
first.depends = $(first) copydata
export(first.depends)
export(copydata.commands)
QMAKE_EXTRA_TARGETS += first copydata

$$PWD - это путь к текущему файлу .pro. Если ваш файл settings.ini не находится в той же директории, кроме файла проекта, используйте что-то вроде $$PWD/more_dirs_here/settings.ini

Примечание. Я нашел это решение здесь. Я рекомендую прочитать всю статью, так как она объясняет, как это работает.

Ответ 3

для пакетов osx вы можете справиться с этим таким образом см. Файлы ресурсов в пакете OS X

добавьте это в файл проекта:

APP_QML_FILES.files = path/to/file1.qml path/to/file2.qml
APP_QML_FILES.path = Contents/Resources
QMAKE_BUNDLE_DATA += APP_QML_FILES

этот пример копирует файлы в Contents/Resources