Qt(5) и vcpkg
От: SaZ  
Дата: 28.07.23 14:20
Оценка:
Доброго дня,

Пробую собрать проект в следующем окружении: платформы win/mac, среда CLion, менеджер пакетов vcpkg.

Проект не запускается потому что не может найти плагины. Вроде это как-то должно решаться через файл qt.conf. Но у меня получаются какие-то совсем тяжёлые велосипеды для вычисления этого конфига для дебага и релиза. Как правильно это делать?

Возможно есть нормальный шаблон CMake проекта для Qt5 + qml под мак+линукс+винду? Так чтобы с деплоем. И желательно который работает с vcpkg.
Отредактировано 28.07.2023 15:09 SaZ . Предыдущая версия .
Re: Qt(5) и vcpkg
От: SaZ  
Дата: 01.08.23 09:38
Оценка: 3 (1)
SaZ>...

Короче походу проблема чуть локализовалась. При сборке qt5 через vcpkg по умолчанию плагины (включая qtquickcontrols2plugin) собираются статически. Соответственно в коде надо писать Q_IMPORT_PLUGIN(qtquickcontrols2plugin), но увы, линкер ругается. Возможно надо каждый плагин цеплять через target_link_libraries, но я не вижу нужных таргетов для плагинов (есть только для основных qt библиотек, типа Qt5::Core).
Re: Qt(5) и vcpkg
От: Skorodum Россия  
Дата: 25.08.23 14:21
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Возможно есть нормальный шаблон CMake проекта для Qt5 + qml под мак+линукс+винду? Так чтобы с деплоем. И желательно который работает с vcpkg.

У меня похожая ситуация: сборка с помощью СMake под Win/MaOS/Linux (x86 + ARM), все это в Azure DevOps.
Пока самое надежное это установка бинарей Qt на каждой платформе по своему и указание QT5_ROOT.
Пробовал manifest mode: для винды хорошо пошло, а на MaOS кэширование бинарей в Azure пока не взлетело.
Далее windeployqt/macdeployqt/linuxdeployqt.
Re[2]: Qt(5) и vcpkg
От: Skorodum Россия  
Дата: 25.08.23 14:29
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Короче походу проблема чуть локализовалась. При сборке qt5 через vcpkg по умолчанию плагины (включая qtquickcontrols2plugin) собираются статически.

Можно попробовать написать свой overlay port для динамической сборки плагинов.

SaZ>Соответственно в коде надо писать Q_IMPORT_PLUGIN(qtquickcontrols2plugin), но увы, линкер ругается. Возможно надо каждый плагин цеплять через target_link_libraries, но я не вижу нужных таргетов для плагинов (есть только для основных qt библиотек, типа Qt5::Core).

Можно написать "FindQtPlugins.cmake", найти там плагины, и сделать imported target.
В основном проект:
find_package(QtPlugins REQUIRED) и target_link_libraries
Re[2]: Qt(5) и vcpkg
От: SaZ  
Дата: 25.08.23 16:42
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>Здравствуйте, SaZ, Вы писали:


SaZ>>Возможно есть нормальный шаблон CMake проекта для Qt5 + qml под мак+линукс+винду? Так чтобы с деплоем. И желательно который работает с vcpkg.

S>У меня похожая ситуация: сборка с помощью СMake под Win/MaOS/Linux (x86 + ARM), все это в Azure DevOps.
S>Пока самое надежное это установка бинарей Qt на каждой платформе по своему и указание QT5_ROOT.
S>Пробовал manifest mode: для винды хорошо пошло, а на MaOS кэширование бинарей в Azure пока не взлетело.
S>Далее windeployqt/macdeployqt/linuxdeployqt.

Спасибо, я в принципе сейчас ковыряю просто проект с нуля. Текущий завезти так и не смог.
Говорят, что clang может даже кросс компиляцию под всё, но я хотел бы получить готовый dockerfile, что собственно и пытаюсь сейчас сделать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.