cmake_minimum_required(VERSION 3.5)

project(kysdk-genai-nlp-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 ()


find_package(PkgConfig REQUIRED)
find_package(KylinAiProto REQUIRED)
find_package(OpenSSL REQUIRED)

kylin_ai_generate_gdbus_proto_code(COMMON_PROTO_FILES gennlpservice)

pkg_check_modules(GIO REQUIRED gio-unix-2.0)
pkg_check_modules(JSON REQUIRED json-glib-1.0)
pkg_check_modules(KYAICONFIG kyai-config)
pkg_check_modules(KYAINLP kysdk-genai-nlp)

include_directories(../include)
include_directories(../src)
include_directories(../include/kylin-ai/gen/text)
include_directories(../include/kylin-ai)
include_directories(${GIO_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS})
include_directories(${KYAICONFIG_INCLUDE_DIRS})
include_directories(${OPENSSL_INCLUDE_DIR})

set(SERVICE_SOURCES
    ../src/logger.h
    ../src/logger.cpp

    ../src/_chatmessage.h
    ../src/_chatmessage.cpp
    ../src/_chatmodelconfig.h
    ../src/_chatmodelconfig.cpp
    ../src/_chatresult.h
    ../src/_chatresult.cpp
    ../src/_genaitextsession.h
    ../src/_genaitextsession.cpp

    ../src/genainlpserver.h
    ../src/genainlpserver.cpp
    ../src/genainlpserviceproxy.h
    ../src/genainlpserviceproxy.cpp
)

add_executable(testGenAiNlpApi
    testGenAiNlp.cpp
    ${SERVICE_SOURCES}
    ${COMMON_PROTO_FILES}
)

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

include(CMakePackageConfigHelpers)
