Files
immich-sync/CMakeLists.txt
T
feedc0de 2e8a394857
Publish container image / Build and push (push) Successful in 49s
Publish container image / Deploy to Kubernetes (push) Successful in 31s
Add shared statistics and Prometheus metrics
2026-08-05 18:32:30 +02:00

73 lines
1.8 KiB
CMake

cmake_minimum_required(VERSION 3.28)
project(immich-sync VERSION 0.2.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_AUTOMOC ON)
find_package(Qt6 6.9 REQUIRED COMPONENTS Core Network HttpServer WebSockets)
qt_add_executable(immich-sync
src/main.cpp
src/Application.cpp
src/Application.h
src/ImmichClient.cpp
src/ImmichClient.h
src/Metrics.cpp
src/Metrics.h
src/SyncSession.cpp
src/SyncSession.h
src/Types.cpp
src/Types.h
)
qt_add_resources(immich-sync "webapp"
PREFIX "/web"
FILES
web/index.html
web/app.js
web/styles.css
)
target_link_libraries(immich-sync PRIVATE
Qt6::Core
Qt6::Network
Qt6::HttpServer
Qt6::WebSockets
)
target_compile_definitions(immich-sync PRIVATE
IMMICH_SYNC_VERSION="${PROJECT_VERSION}"
QT_NO_CAST_FROM_ASCII
QT_NO_CAST_TO_ASCII
)
target_compile_options(immich-sync PRIVATE
$<$<CXX_COMPILER_ID:GNU,Clang>:-Wall -Wextra -Wpedantic -Wconversion -Wshadow>
)
include(GNUInstallDirs)
install(TARGETS immich-sync RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
include(CTest)
if(BUILD_TESTING)
find_package(Qt6 6.9 REQUIRED COMPONENTS Test)
qt_add_executable(immich-sync-tests
tests/TypesTest.cpp
src/Types.cpp
src/Types.h
src/Metrics.cpp
src/Metrics.h
)
target_include_directories(immich-sync-tests PRIVATE src)
target_link_libraries(immich-sync-tests PRIVATE Qt6::Core Qt6::Network Qt6::Test)
target_compile_definitions(immich-sync-tests PRIVATE
IMMICH_SYNC_VERSION="${PROJECT_VERSION}"
QT_NO_CAST_FROM_ASCII
QT_NO_CAST_TO_ASCII
)
add_test(NAME immich-sync-types COMMAND immich-sync-tests)
endif()