cmake_minimum_required(VERSION 3.5)
project(odf_validator LANGUAGES C VERSION 0.3.1)

include(GNUInstallDirs)

option(BUILD_TEST "Build test_package" OFF)

if (BUILD_TEST)
message(STATUS "Start generating odf_validator code")
execute_process(COMMAND lbk gen WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE ret)
if(ret AND NOT ret EQUAL 0)
    message(FATAL_ERROR "Generating odf_validator code failed")
endif()
add_definitions(-DBUILD_TEST)
endif()

find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
pkg_check_modules(CONN_PUB REQUIRED lbConnector-public)

if (CMAKE_BUILD_TYPE STREQUAL "Release")
    add_definitions("-DG_DISABLE_ASSERT")
endif()

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src ODF_VAL_SRC_LIST)
list(SORT ODF_VAL_SRC_LIST)
add_library(${PROJECT_NAME} SHARED ${ODF_VAL_SRC_LIST})

target_include_directories(${PROJECT_NAME} PUBLIC
    ${GLIB2_INCLUDE_DIRS}
    ${CONN_PUB_INCLUDE_DIRS}
)

target_link_libraries(${PROJECT_NAME} PUBLIC
    ${GLIB2_LIBRARIES}
    ${CONN_PUB_LIBRARIES}
)

target_link_directories(${PROJECT_NAME} PUBLIC
    ${CONN_PUB_LIBRARY_DIRS}
)

if (BUILD_TEST)
add_subdirectory(test_package)
endif()

install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION opt/litebmc/plugins/connector)
