WaterLevelSensor/CMakeLists.txt

111 lines
2.9 KiB
Text
Raw Normal View History

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)
2026-04-16 17:18:02 +05:30
find_package(Qt6 REQUIRED COMPONENTS Quick Network CorePrivate)
2026-04-01 18:33:19 +05:30
2026-04-16 17:18:02 +05:30
qt_standard_project_setup(REQUIRES 6.11)
2026-04-01 18:33:19 +05:30
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::Network
2026-04-16 17:18:02 +05:30
Qt::CorePrivate
2026-04-01 18:33:19 +05:30
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()