Skip to content
Snippets Groups Projects
CMakeLists.txt 2.63 KiB
find_package(
    Qt6
    COMPONENTS Core Widgets Quick Gui Qml Multimedia MultimediaWidgets Concurrent Network WebSockets
    REQUIRED
)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network WebSockets)

qt_add_executable(${PROJECT_NAME}
    backend/importdummy.qml
    backend/main.cpp
    backend/logger.h
    backend/backend.cpp backend/backend.h
    backend/projectmanager.cpp backend/projectmanager.h
    backend/settings.cpp backend/settings.h
    backend/dsconnector/ds.cpp backend/dsconnector/ds.h
    backend/dsconnector/dsmanager.cpp backend/dsconnector/dsmanager.h
    backend/qrscanner.cpp backend/qrscanner.h
    ../3rdparty/zxing-cpp/example/ZXingQtReader.h
)

set_source_files_properties(Constants.qml PROPERTIES
    QT_QML_SINGLETON_TYPE TRUE
)

qt_add_qml_module(${PROJECT_NAME}
    URI AndroidUI
    VERSION 1.0
    QML_FILES
        Constants.qml
        HomePage.qml
        Main.qml
        NavigationBar.qml
        NavigationButton.qml
        QrButton.qml
        SettingsItem.qml
        SettingsPage.qml
        SwitchSettingsItem.qml
)

qt_target_qml_sources(${PROJECT_NAME}
    PREFIX
        "/"
    RESOURCES
        fonts/QtOneIconFont.ttf
        images/appicon.svg
)

target_link_libraries(${PROJECT_NAME} PRIVATE
    Qt6::Core Qt6::Widgets
    Qt6::Quick Qt6::Gui
    Qt6::Qml Qt6::GuiPrivate
    Qt6::Multimedia Qt6::MultimediaWidgets
    Qt6::Concurrent Qt6::Network Qt6::WebSockets
    ZXing::ZXing
)

qt_add_library(qtuiviewerlib OBJECT
    EXCLUDE_FROM_ALL
    backend/projectmanager.cpp backend/projectmanager.h
    backend/settings.cpp backend/settings.h
    backend/dsconnector/ds.cpp backend/dsconnector/ds.h
    backend/dsconnector/dsmanager.cpp backend/dsconnector/dsmanager.h
)

target_link_libraries(qtuiviewerlib PRIVATE
    Qt6::Core
    Qt6::Quick
    Qt6::Qml
    Qt6::Gui
    Qt6::GuiPrivate
    Qt6::WebSockets
)

target_include_directories(qtuiviewerlib PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}
)

set_target_properties(${PROJECT_NAME} PROPERTIES QT_ANDROID_PACKAGE_NAME "io.qt.qtdesignviewer")
set_property(TARGET ${PROJECT_NAME}
    APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android
)
set_property(TARGET ${PROJECT_NAME}
    APPEND PROPERTY QT_ANDROID_EXTRA_LIBS
        ${ANDROID_OPENSSL_PATH}/libcrypto_3.so
        ${ANDROID_OPENSSL_PATH}/libssl_3.so
)

# this needs to be increased with every new release
set(GOOGLE_PLAY_APP_VERSION 31)
# CMAKE_VAR_GIT_VERSION (coming from the top-level CMakeLists.txt) and GOOGLE_PLAY_APP_VERSION replaced in the following file
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml.in ${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml)