Использование QT с Cmake



  • Доброго времени суток. Довольно долго пытаюсь решить проблему(3й день), которую опишу ниже.

    Есть проект на xubuntu, который собирает с помощью Cmake. Обязательное условие, чтобы использовались библиотеки из репозитория, т.е. нельзя скачать с http://qt-project.org/.
    Я создал модуль поиска библиотек cmake, выглядит он вот так:

    @
    FIND_LIBRARY(
    QT5Libs
    NAMES libQt5Core.so.5
    libQt5Quick.so.5
    libQt5Qml.so.5
    libQt5Gui.so.5
    libQt5Network.so.5
    libQt5v8.so.5
    PATHS /usr/local/lib /usr/lib /opt/local/include /usr/lib/i386-linux-gnu/
    )

    if (NOT QT5Libs)
    message(STATUS "Necessary QT5 libraries are not found")
    message(STATUS "To install it type in the command line:")
    message(STATUS "sudo apt-get install libqt5quick5")
    endif (NOT QT5Libs)

    FIND_LIBRARY(
    ICU_LIBS
    NAMES libicui18n.so
    libicuuc.so
    libicudata.so
    PATHS /usr/local/lib /usr/lib /opt/local/include /usr/lib/i386-linux-gnu/
    )

    if (NOT ICU_LIBS)
    message(STATUS "Necessary icu libraries are not found")
    message(STATUS "To install it type in the command line:")
    message(STATUS "sudo apt-get install libicu")
    endif (NOT ICU_LIBS)
    @

    Библиотеки ищутся, все необходимое устанавливаем. Далее в проекте должны собираться плагины, используя qmake.

    Вопрос первый. Какие образом из CMakeList можно вызвать qmake нужного .pro файла (при условии, что qmake устанавливается с помощью apt-get install qt5-qmake и не имеет никаких связей с нужными ему модулями (quick qml) Ошибка: Project error: unknown module(s) in Qt: quick qml) ?

    Вопрос второй. Когда мы устанавливаем Qt SDK - то все здорово: модули ищутся с помощью find_package(Qt***), qmake знает, где что находится. Но реальность такова, что ставятся отдельные пакеты (такое условие) с библиотеками и никаких связей нет. Как их настроить?



  • qtbase5-dev
    qtdeclarative-dev

    close pls


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.