Пробую собрать проект в следующем окружении: платформы win/mac, среда CLion, менеджер пакетов vcpkg.
Проект не запускается потому что не может найти плагины. Вроде это как-то должно решаться через файл qt.conf. Но у меня получаются какие-то совсем тяжёлые велосипеды для вычисления этого конфига для дебага и релиза. Как правильно это делать?
Возможно есть нормальный шаблон CMake проекта для Qt5 + qml под мак+линукс+винду? Так чтобы с деплоем. И желательно который работает с vcpkg.
Короче походу проблема чуть локализовалась. При сборке qt5 через vcpkg по умолчанию плагины (включая qtquickcontrols2plugin) собираются статически. Соответственно в коде надо писать Q_IMPORT_PLUGIN(qtquickcontrols2plugin), но увы, линкер ругается. Возможно надо каждый плагин цеплять через target_link_libraries, но я не вижу нужных таргетов для плагинов (есть только для основных qt библиотек, типа Qt5::Core).
Здравствуйте, SaZ, Вы писали:
SaZ>Возможно есть нормальный шаблон CMake проекта для Qt5 + qml под мак+линукс+винду? Так чтобы с деплоем. И желательно который работает с vcpkg.
У меня похожая ситуация: сборка с помощью СMake под Win/MaOS/Linux (x86 + ARM), все это в Azure DevOps.
Пока самое надежное это установка бинарей Qt на каждой платформе по своему и указание QT5_ROOT.
Пробовал manifest mode: для винды хорошо пошло, а на MaOS кэширование бинарей в Azure пока не взлетело.
Далее windeployqt/macdeployqt/linuxdeployqt.
Здравствуйте, 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
Здравствуйте, 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, что собственно и пытаюсь сейчас сделать.