set(kazvclient_SRCS
  sdk-model.cpp
  client-model.cpp
  client.cpp
  clientutil.cpp
  status-utils.cpp
  actions/auth.cpp
  actions/sync.cpp
  actions/paginate.cpp
  actions/membership.cpp
  actions/states.cpp
  actions/account-data.cpp
  actions/send.cpp
  actions/ephemeral.cpp
  actions/content.cpp
  actions/encryption.cpp
  actions/profile.cpp
  actions/storage.cpp
  device-list-tracker.cpp
  encrypted-file.cpp

  room/room-model.cpp
  room/room.cpp

  push-rules-desc.cpp
  notification-handler.cpp
  power-levels-desc.cpp

  get-content-job-v1.cpp
  alias.cpp
  encode.cpp
  )

add_library(kazvclient ${kazvclient_SRCS})
add_library(libkazv::kazvclient ALIAS kazvclient)
set_target_properties(kazvclient PROPERTIES VERSION ${libkazv_VERSION_STRING} SOVERSION ${libkazv_SOVERSION})

# https://github.com/google/googletest/issues/1841
if (MINGW)
  target_compile_options(kazvclient PRIVATE "-Wa,-mbig-obj")
endif()

target_link_libraries(kazvclient PUBLIC kazvbase kazvapi kazvcrypto kazvstore Boost::regex)

target_include_directories(kazvclient PRIVATE .)

target_include_directories(kazvclient
  INTERFACE
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
  $<INSTALL_INTERFACE:include/kazv/client>
  )

install(TARGETS kazvclient EXPORT libkazvTargets LIBRARY)
