Название: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 21, 2015, 17:11 Некоторый файл, должен быть сформирован во время компиляции проекта и добавлен в ресурс приложения. В качестве примера может быть файл перевода (*.qm) формируемый из исходных TS-файлов.
Проблема в том, что qmake при первом запуске встречая в проекте файл ресурсов (*.qrc), проверяет, все ли ресурсы доступны. А так как на этом этапе файл переводов еще не скомпилися, то RCC выдает ошибку Код
И соответственно сборка проекта заканчивается ошибкой. Но повторная компиляция конечно решает проблему, но это "неаккуратненько как-то". У кого есть элегантное решение? Название: Re: Динамически формируемый ресурс Отправлено: Alex Custov от Сентябрь 21, 2015, 17:52 С qmake - нет. Такие дела, да.
Название: Re: Динамически формируемый ресурс Отправлено: __Heaven__ от Сентябрь 22, 2015, 10:32 Быть может перед qmake добавить этап сборки, который будет отвечать за создание файла?
Название: Re: Динамически формируемый ресурс Отправлено: Racheengel от Сентябрь 22, 2015, 11:08 Делить на 2 проекта, один будет генерить файлы, другой собирать ресурсы.
Название: Re: Динамически формируемый ресурс Отправлено: qate от Сентябрь 22, 2015, 11:08 скрип, все равно же его писать
и делать релиз под отдельной чистой ОС, в виртуалке Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 22, 2015, 12:09 Делить на 2 проекта, один будет генерить файлы, другой собирать ресурсы. Я так пробовал. Это не работает, поскольку qmake проходит по всем подпроектам сразу и получается тот же результат.Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 22, 2015, 12:10 Быть может перед qmake добавить этап сборки, который будет отвечать за создание файла? Как это сделать? Если речь о QMAKE_EXTRA_TARGETS, то если кратко, то тоже не получается.Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 22, 2015, 12:10 скрип, все равно же его писать Что?и делать релиз под отдельной чистой ОС, в виртуалке Название: Re: Динамически формируемый ресурс Отправлено: __Heaven__ от Сентябрь 22, 2015, 15:27 Build Steps
Название: Re: Динамически формируемый ресурс Отправлено: qate от Сентябрь 22, 2015, 16:07 скрип, все равно же его писать Что?и делать релиз под отдельной чистой ОС, в виртуалке 1. писать скипт, где сначала вызывать лингвист, а затем сборку основного проекта 2. скрипт все равно понадобится для итоговой сборки, которую удобно делать на другой машине https://ru.wikipedia.org/wiki/Непрерывная_интеграция Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 23, 2015, 02:04 Build Steps Это будет работать только в креаторе. Не интересно.И зачем делать еще один лишний командный файл, если все нужные команды можно указать в этапах сборки? Но все равно не интересно) Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 23, 2015, 02:05 скрип, все равно же его писать Что?и делать релиз под отдельной чистой ОС, в виртуалке 1. писать скипт, где сначала вызывать лингвист, а затем сборку основного проекта 2. скрипт все равно понадобится для итоговой сборки, которую удобно делать на другой машине https://ru.wikipedia.org/wiki/Непрерывная_интеграция Еще можно сделать алиас для make Код Решение ваще огонь! Название: Re: Динамически формируемый ресурс Отправлено: qate от Сентябрь 23, 2015, 08:35 То есть элегантное решение это скрипт на две команды? Думаешь это я искал? ??? это пока две ) именно средствами qmake не знаю как это сделать Название: Re: Динамически формируемый ресурс Отправлено: Alex Custov от Сентябрь 23, 2015, 17:54 именно средствами qmake не знаю как это сделать qmake для такого не приспособлен. Я тоже когда-то пытался сделать всё мегауниверсально, чтобы само всё находилось и т.д., но решением стало только наличие внешнего скрипта, который запускается вручную. Название: Re: Динамически формируемый ресурс Отправлено: andrew.k от Сентябрь 24, 2015, 19:18 именно средствами qmake не знаю как это сделать qmake для такого не приспособлен. Я тоже когда-то пытался сделать всё мегауниверсально, чтобы само всё находилось и т.д., но решением стало только наличие внешнего скрипта, который запускается вручную. Пока получилось сделать вот так. Под linux работает. Проверьте под win кто-нибудь, пожалуйста. Теперь qmake не ругается на отсутствующий файл. Поскольку он генерится самим qmake. Файлы переводов обновляются при изменении, т.к. для них заданы дополнительные правила. Внешний скрипт не используется. Все запихано в один подключаемый к проекту файл. Ваши мнения? То что это изврат и CMake круто и так понятно) Листинг translations.pri Код
|