Скопируйте файл в каталог сборки после компиляции проекта с помощью Qt
У меня есть файл "settings.ini", который должен находиться рядом с исполняемым файлом Qt.
В Qt Creator я могу добавить настраиваемый шаг сборки, который вызывает что-то вроде этого:
copy %{sourceDir}/settings.ini %{buildDir}/settings.ini
Это отлично работает до сих пор, но я хотел бы включить его в файл *.pro, чтобы я мог также включить его в наш SVN.
Как это сделать, используя только qmake/.pro файлы?
Ответы
Ответ 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