Развертывание ПО с помощью cqtdeployer
Возникает небольшая проблема с деплоем ПО,где присутствуют qml файлы. Ни они, ни плагины не включаются в каталог проекта после установки с помощью cqtdeployer. Вероятнее всего я как то не так указываю аргументы
CMakeLists.txt:
cmake_minimum_required(VERSION 3.14)
project(control_activator LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Network Quick Widgets Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Network Quick Widgets Gui REQUIRED)
find_package(X11 REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(EVDEV libevdev REQUIRED)
pkg_check_modules(XFIXES Xfixes)
pkg_check_modules(XINPUT Xi)
include_directories(headers/)
include_directories(${EVDEV_INCLUDE_DIRS})
set(HEADER_DIR headers)
set(SOURCE_DIR sources)
set(CONFIG_FILES configs/config.json)
set(HEADER_FILES ${HEADER_DIR}/server_connector.h
${HEADER_DIR}/mouse.h
${HEADER_DIR}/qml_connector.h
${HEADER_DIR}/configs.h
${HEADER_DIR}/x11_space.h
${HEADER_DIR}/keyboard.h)
set(SOURCE_FILES ${SOURCE_DIR}/server_connector.cpp
${SOURCE_DIR}/qml_connector.cpp
${SOURCE_DIR}/mouse.cpp
${SOURCE_DIR}/configs.cpp
${SOURCE_DIR}/x11_space.cpp
${SOURCE_DIR}/keyboard.cpp)
qt_add_resources(SOURCE_FILES resources.qrc)
qt_add_executable(control_activator
${HEADER_FILES}
${SOURCE_FILES}
${CONFIG_FILES}
main.cpp
qml/main.qml
)
qt_add_qml_module(ActivatorQml
URI control_activator
VERSION 1.0
QML_FILES qml/main.qml
)
target_link_libraries(control_activator PRIVATE
Qt${QT_MAJOR_VERSION}::Core
Qt${QT_MAJOR_VERSION}::Network
Qt${QT_MAJOR_VERSION}::Quick
Qt${QT_MAJOR_VERSION}::Widgets
Qt${QT_MAJOR_VERSION}::Gui
${EVDEV_LIBRARIES}
X11
Xfixes
Xi
)
А вот результат развертывания проекта:
azg3@azg3-G3-3590:~/projects/build-control_activator-aQt-Release$ cqtdeployer -bin control_activator -qmake /home/azg3/aQt/6.2.3/gcc_64/bin/qmake -qmlDir ./
Info: Deploy ...
Info: The targetDir option is not used. CQtDeployer will use default target dir :/home/azg3/projects/build-control_activator-aQt-Release/DistributionKit
Info: copy :/home/azg3/projects/build-control_activator-aQt-Release/control_activator
Warning: Failed to extract qml! The qt qml dir is not initialized!
Warning: Failed to copy standard Qt translations
Info: deploy done!
Info: copy :/home/azg3/projects/build-control_activator-aQt-Release/DistributionKit/tmp_data/Application/bin/control_activator
Info: copy :/home/azg3/projects/build-control_activator-aQt-Release/DistributionKit/tmp_data/Application/bin/qt.conf
Info: copy :/home/azg3/projects/build-control_activator-aQt-Release/DistributionKit/tmp_data/Application/control_activator.sh
Каталог:
azg3@azg3-G3-3590:~/projects/build-control_activator-aQt-Release$ ls DistributionKit/
bin control_activator.sh Installercontrol_activator.run Installercontrol_activator.run.md5
azg3@azg3-G3-3590:~/projects/build-control_activator-aQt-Release$ ls DistributionKit/bin
control_activator qt.conf
Ответы (1 шт):
Автор решения: Andrey Yankovich
→ Ссылка
Вы ошиблись с опцией qmlDir она должна включать в себя рутовую директорию всех ваших qml файлов.
Пример
cqtdeployer -bin control_activator -qmake /home/azg3/aQt/6.2.3/gcc_64/bin/qmake -qmlDir ~/projects/control_activator-a
Так же если вы используете snap версию cqtdeployer - не забудьте про добавление разрешений.
sudo snap connect cqtdeployer:process-control
sudo snap connect cqtdeployer:removable-media
sudo snap connect cqtdeployer:system-backup
Подробнее смотрите документацию.