Ubuntu Touch Как добавить внешние библиотеки в Qml C++ Cmake

Я пытаюсь использовать socketio poco в сенсорном приложении Ubuntu на Qml/C++. Но не уверен, как добавить его или если это возможно. Оба используют cmake и работают отдельно.

Это socketio poco CMakeLists.txt:

    cmake_minimum_required(VERSION 3.0)

    set(CMAKE_BUILD_TYPE Debug)
    set (CMAKE_CXX_STANDARD 11)

    set(source_files
        client.cpp
        Events.cpp
    )

    file(GLOB SIOPOCO_SOURCES src/SIOClient.cpp
                              src/Other.cpp
    )

    include_directories(include/)
    add_library(socketiopoco_static STATIC ${SIOPOCO_SOURCES})

    add_executable(socketiopoco_example ${source_files})

    target_link_libraries(socketiopoco_example socketiopoco_static
                                       pthread
                                       crypto
                                       ssl
                                       PocoNetSSL
                                       PocoCrypto
                                       PocoNet
                                       PocoZip
                                       PocoUtil
                                       PocoXML
                                       PocoJSON
                                       PocoFoundation)

    install (TARGETS socketiopoco_example DESTINATION bin)

а вот и сенсорное приложение Ubuntu CMakeLists.txt:

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    set(PLUGIN "PluginName")

    set (CMAKE_CXX_STANDARD 11)

    set(
        SRC
        plugin.cpp
        pluginname.cpp
    )

    set(CMAKE_AUTOMOC ON)

    add_library(${PLUGIN} MODULE ${SRC})
    set_target_properties(${PLUGIN} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PLUGIN})
    qt5_use_modules(${PLUGIN} Qml Quick DBus)

    execute_process(
        COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
        OUTPUT_VARIABLE ARCH_TRIPLET
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    set(QT_IMPORTS_DIR "/lib/${ARCH_TRIPLET}")

    install(TARGETS ${PLUGIN} DESTINATION ${QT_IMPORTS_DIR}/${PLUGIN}/)
    install(FILES qmldir DESTINATION ${QT_IMPORTS_DIR}/${PLUGIN}/)

и структура проекта:

 utproject/
     assets/
     plugins/
         PluginName/
             include/ #socketio
             src/     #socketio
             CMakeLists.txt #code above
             plugin.cpp
             plugin.h
             pluginname.cpp
             pluginname.h
         CMakeLists.txt
     po/
     qml/
     utproject.apparmour
     clickable.json
     CMakeLists.txt

Оба работают правильно, но я не уверен, как добавить библиотеки сокетов io в проект qml/ C++.

Когда я пытаюсь, я получаю poco библиотеки, отсутствующие в проекте qml. Библиотеки Poco находятся в /usr/local/include/, и cmake может легко найти его в проекте socketio poco.

Моя версия cmake - 3.10, и я использую кликабель, чтобы запустить его. Может быть, проще использовать html5 framework, но я тоже хочу использовать другие библиотеки C++.

Спасибо за помощь

0 ответов

Другие вопросы по тегам