2017-01-11 7 views
0

Я пытаюсь сделать мой проект установщика Qt более комфортным.Qt Installer project: как сгенерировать package.xml и config.xml

Мне нужно централизовать информацию о моем приложении и компонентах (config.xml и package.xml) в одном файле. Я не хочу перескакивать на разные файлы с тем же именем и искать переменные элементы между тэгами xml.

My first yougt делает это прямо в * .pro файле проекта установщика. Я помещаю разделы переменных в заголовок файла проекта установщика. Но где мне нужно поместить код для генерации xml?

Что лучше (родной/удобный/кроссплатформенный) способ сделать это?

ответ

0

Ответ прост: вы не можете создавать файлы XML для Qt Installer: вы пишете их вручную, как описано в documentation.

В этом разделе описываются следующие задачи, которые необходимо выполнить, чтобы создать программу установки:

  1. Создать каталог пакет, который будет содержать все файлы конфигурации и устанавли- пакетов.
  2. Создайте файл конфигурации , который содержит информацию о том, как создавать двоичные файлы установщика и онлайн-хранилища.
  3. Создайте файл с информацией о пакете, который содержит информацию об установленных компонентах.
  4. Создайте контент установщика и скопируйте его в каталог пакета.
  5. Используйте binarycreator инструмент для создания установщика .

Однако, если присмотреться at the examples, вы можете произвести установки в * .pro файле. Давайте выберем пример случайно, System Info:

TEMPLATE = aux 

INSTALLER = installer 

INPUT = $$PWD/config/config.xml $$PWD/packages 
example.input = INPUT 
example.output = $$INSTALLER 
example.commands = ../../bin/binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT} 
example.CONFIG += target_predeps no_link combine 

QMAKE_EXTRA_COMPILERS += example 

OTHER_FILES = README 

Если вы хотите применить это к вашему проекту, я думаю, вы должны изменить ../../bin/binarycreator линию и сделать систему известно, изменив свой PATH. Возможно, можно вызвать внешний скрипт и проанализировать XML-файлы, а также сделать замены, которые вы хотели бы сделать, но вы переместили бы сложность в другое место.

Вместо сохранения простых старых старых файлов XML вы должны создавать что-то между XSLT и XML. Возможно, вы могли бы просто написать XSLT (или XSL или XQUERY) и сгенерировать XML, но я не знаю никого, кто его больше использует. В прошлый раз я использовал это, когда я учился в Computer Science давным-давно :)