cmake_minimum_required(VERSION 3.5)

project(kylin-genai-vision-test LANGUAGES CXX C)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_SKIP_RPATH ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if (CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))
    add_compile_definitions(RUN_IN_DEBUG)
else ()
    add_compile_definitions(RUN_IN_RELEASE)
endif ()

include_directories(../include)
include_directories(../src)
include_directories(../include/kylin-ai/genai/vision)
include_directories(../include/kylin-ai)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GIO REQUIRED gio-unix-2.0)
pkg_check_modules(JSON REQUIRED json-glib-1.0)
find_package(KylinAiProto REQUIRED)

kylin_ai_generate_gdbus_proto_code(COMMON_PROTO_FILES genaivisionservice)


#pkg_check_modules(AIBASE kylin-ai-base)
pkg_check_modules(KYAICONFIG kyai-config)
pkg_check_modules(KYAIASS kyai-assistant)
pkg_check_modules(KYAIVISION kyai-genai-vision)

include_directories(${AIBASE_INCLUDE_DIRS})
include_directories(${KYAICONFIG_INCLUDE_DIRS})
include_directories(${KYAIASS_INCLUDE_DIRS})
include_directories(${KYAIVISION_INCLUDE_DIRS})

include_directories(${GIO_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS})

set(EXEC_SOURCES
    ../src/_genaiimagesession.cpp
    ../src/_imageresult.cpp
    ../src/genaivisionserviceproxy.cpp
    ../src/image.cpp
    ../src/logger.cpp
    ../src/imageconfig.cpp
    ${COMMON_PROTO_FILES}
)

find_package(OpenSSL REQUIRED)
include_directories(${OPENSSL_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/include)

add_executable(testGenAiVisionApi testGenVision.cpp
    ${EXEC_SOURCES}
)

target_link_libraries(testGenAiVisionApi
    ${GIO_LIBRARIES}
    pthread
    jsoncpp
    json-glib-1.0
    ${OPENSSL_LIBRARIES}
    ${KYAICONFIG_LIBRARIES}
    ${KYAIASS_LIBRARIES}
    ${KYAIVISION_LIBRARIES}
)

include(CMakePackageConfigHelpers)
