cmake_minimum_required(VERSION 3.16) project(waterLevelSensor VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTORCC ON) find_package(Qt6 REQUIRED COMPONENTS Quick Network CorePrivate) qt_standard_project_setup(REQUIRES 6.11) qt_add_executable(appwaterLevelSensor main.cpp images.qrc ) if(ANDROID) include(FetchContent) FetchContent_Declare( android_openssl DOWNLOAD_EXTRACT_TIMESTAMP true URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip ) FetchContent_MakeAvailable(android_openssl) include(${android_openssl_SOURCE_DIR}/android_openssl.cmake) qt_add_library(service SHARED servicemain.cpp service.h service.cpp ) set_property(TARGET appwaterLevelSensor APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android) set_property(TARGET service APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android) target_link_libraries(service PRIVATE Qt::Core Qt::Network Qt::CorePrivate Qt::Quick ) qt_add_qml_module(appwaterLevelSensor URI waterLevelSensor QML_FILES Main.qml RESOURCES RESOURCES images.qrc SOURCES moving_container.h SOURCES configinterface.h configinterface.cpp SOURCES udplistener.h udplistener.cpp SOURCES service.h RESOURCES README.md ) add_android_openssl_libraries(service appwaterLevelSensor) target_link_libraries(appwaterLevelSensor PRIVATE Qt6::Quick Qt6::Network service ) qt_finalize_executable(appwaterLevelSensor) add_dependencies(appwaterLevelSensor service) qt_generate_deploy_app_script( TARGET appwaterLevelSensor OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR ) install(SCRIPT ${deploy_script}) endif() if(NOT ANDROID) qt_add_qml_module(appwaterLevelSensor URI waterLevelSensor QML_FILES Main.qml RESOURCES RESOURCES images.qrc SOURCES udplistener.h udplistener.cpp SOURCES moving_container.h SOURCES configinterface.h configinterface.cpp ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manu ally though. set_target_properties(appwaterLevelSensor PROPERTIES # MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appwaterLevelSensor MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) target_link_libraries(appwaterLevelSensor PRIVATE Qt6::Quick Qt6::Network ) qt_finalize_executable(appwaterLevelSensor) include(GNUInstallDirs) install(TARGETS appwaterLevelSensor BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif()