Russian Qt Forum
Ноябрь 25, 2024, 15:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: lrelease и make install  (Прочитано 3725 раз)
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, то упаковка происходит успешно.

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

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Август 09, 2019, 08:59 »

"-d             Increase debug level"  и смотри логи

я делаю пакет deb после сборки сам, скриптами, и не завишу от qmake
Записан
admsasha
Гость
« Ответ #2 : Август 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. Если это так, то как изменить  очередность
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Август 09, 2019, 11:32 »

Может добавить путь в VPATH ?
https://doc.qt.io/qt-5/qmake-variable-reference.html#vpath
Записан
admsasha
Гость
« Ответ #4 : Август 09, 2019, 11:44 »

Так VPATH то тут как, если при создании target этих .qm реально нет. Нужно чтобы сперва updateqm обрабатывался, а потом уже строились target.

На всякий случай проверил, не помогает.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.