2026-04-01 18:33:19 +05:30
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
qt_standard_project_setup(REQUIRES 6.9)
|
|
|
|
|
|
|
|
|
|
qt_add_executable(appwaterLevelSensor
|
|
|
|
|
main.cpp
|
|
|
|
|
images.qrc
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(ANDROID)
|
2026-04-13 17:49:08 +05:30
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
2026-04-01 18:33:19 +05:30
|
|
|
qt_add_library(service SHARED
|
|
|
|
|
servicemain.cpp
|
|
|
|
|
service.h service.cpp
|
|
|
|
|
)
|
2026-04-13 17:49:08 +05:30
|
|
|
|
|
|
|
|
|
2026-04-01 18:33:19 +05:30
|
|
|
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::CorePrivate
|
|
|
|
|
Qt::Network
|
|
|
|
|
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
|
2026-04-01 18:37:49 +05:30
|
|
|
RESOURCES README.md
|
2026-04-01 18:33:19 +05:30
|
|
|
)
|
2026-04-13 17:49:08 +05:30
|
|
|
add_android_openssl_libraries(service appwaterLevelSensor)
|
2026-04-01 18:33:19 +05:30
|
|
|
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()
|