Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: admsasha от Август 09, 2019, 08:50



Название: lrelease и make install
Отправлено: admsasha от Август 09, 2019, 08:50
Описываю установку через сам qmake. Вышел затык с переводами.

Сами переводы (qm) формируются распространенным методом
Код:
isEmpty(QMAKE_LRELEASE) {
    win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
    else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
    unix {
        !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt5 }
    } else {
        !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease }
    }
}

!win32 {
  system($${QMAKE_LRELEASE} -silent $${_PRO_FILE_} 2> /dev/null)
}
win32 {
  system($${QMAKE_LRELEASE} $${_PRO_FILE_})
}

updateqm.input = TRANSLATIONS
updateqm.output = langs/${QMAKE_FILE_BASE}.qm
updateqm.commands = $$QMAKE_LRELEASE -silent ${QMAKE_FILE_IN} -qm langs/${QMAKE_FILE_BASE}.qm
updateqm.CONFIG += no_link target_predeps
QMAKE_EXTRA_COMPILERS += updateqm

Далее происходит установка
Код:
data_langs.path = /usr/share/myprog/langs/
data_langs.files = langs/*.qm
INSTALLS += data_langs


Всё это даже работало, до поры до времени. Начиная с какой то новой версии чего либо. Толи Qt, то ли rpmbuild. Это не работает. Сборка qm происходит, но вот упаковка их не происходит. А если qm сразу положить в langs, то упаковка происходит успешно.

Может кто-то уже попался на этом или случайно знает, что поменялось и что требуется теперь добавить ?


Название: Re: lrelease и make install
Отправлено: qate от Август 09, 2019, 08:59
"-d             Increase debug level"  и смотри логи

я делаю пакет deb после сборки сам, скриптами, и не завишу от qmake


Название: Re: lrelease и make install
Отправлено: admsasha от Август 09, 2019, 09:15
Цитировать
DEBUG 1: /usr/lib64/qt5/mkspecs/features/moc.prf:63: flow control statement 'return', aborting block
DEBUG 1: /builddir/build/BUILD/qtbase-everywhere-src-5.12.3/qmake/generators/makefile.cpp:321 Failure to find Bin/myprog in vpath ()
DEBUG 1: /builddir/build/BUILD/qtbase-everywhere-src-5.12.3/qmake/generators/makefile.cpp:321 Failure to find langs/*.qm in vpath ()
DEBUG 1: no definition for install data_langs: install target not created
+ /usr/bin/make -O
/usr/lib64/qt5/bin/lrelease -silent langs/myprog_en.ts -qm langs/myprog_en.qm
/usr/lib64/qt5/bin/lrelease -silent langs/myprog_fr.ts -qm langs/myprog_fr.qm
/usr/lib64/qt5/bin/lrelease -silent langs/myprog_ru.ts -qm langs/myprog_ru.qm

Сразу бросилось в глаза, то что, сперва формируется список langs/*, а только потом происходит lrelease. Если это так, то как изменить  очередность


Название: Re: lrelease и make install
Отправлено: qate от Август 09, 2019, 11:32
Может добавить путь в VPATH ?
https://doc.qt.io/qt-5/qmake-variable-reference.html#vpath


Название: Re: lrelease и make install
Отправлено: admsasha от Август 09, 2019, 11:44
Так VPATH то тут как, если при создании target этих .qm реально нет. Нужно чтобы сперва updateqm обрабатывался, а потом уже строились target.

На всякий случай проверил, не помогает.