include(CMakePackageConfigHelpers)

include_directories(
    ${CMAKE_SOURCE_DIR}/src
    ${LIBUUIDP_INCLUDE_DIR}
)

add_compile_definitions(DATAPATH="${DATAPATH}")

add_library(client STATIC client.cpp $<TARGET_OBJECTS:authobj>)

set_target_properties(client PROPERTIES
  WINDOWS_EXPORT_ALL_SYMBOLS ON
  OUTPUT_NAME "client"
  VERSION ${PROJECT_VERSION}
  SOVERSION ${PROJECT_VERSION_MAJOR}
)

target_link_libraries(client PUBLIC uuidp::uuidp confplus::confplus netplus::netplus json-c::json-c httppp::httppp paritypp::paritypp )

set_target_properties(client PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/include/authdb"
)

write_basic_package_version_file(
  "${CMAKE_CURRENT_BINARY_DIR}/authdbConfigVersion.cmake"
  VERSION "${version}"
  COMPATIBILITY AnyNewerVersion
)
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
  "${CMAKE_CURRENT_BINARY_DIR}/authdbConfig.cmake"
  INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/authdb
)

install(TARGETS client 
        EXPORT authdbTargets
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
        INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(FILES
          "${CMAKE_CURRENT_BINARY_DIR}/authdbConfig.cmake"
          "${CMAKE_CURRENT_BINARY_DIR}/authdbConfigVersion.cmake"
          "${CMAKE_SOURCE_DIR}/cmake/Findjson-c.cmake"
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/authdb
)

install(FILES client.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/authdb)

install(EXPORT authdbTargets
        FILE authdbTargets.cmake
        NAMESPACE authdb::
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/authdb
)

add_subdirectory(examples)
