project(LomiriOnlineAccountsClient LANGUAGES CXX)

set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined")
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

set(CLIENT_LIB lomiri-online-accounts-client)

include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}
    ${CMAKE_SOURCE_DIR}
    ${LomiriOnlineAccountsUi}
    ${CMAKE_SOURCE_DIR}/online-accounts-common
)

set(CLIENT_LIB_HEADERS
    global.h
    setup.h
    Setup
)

set(CLIENT_LIB_SOURCES
    OnlineAccountsUi.cpp
    setup.cpp
)

qt_add_dbus_interface(CLIENT_LIB_SOURCES ${CMAKE_SOURCE_DIR}/online-accounts-service/src/com.lomiri.OnlineAccountsUi.xml OnlineAccountsUi)

add_library(${CLIENT_LIB} SHARED
    ${CLIENT_LIB_SOURCES}
)
set_target_properties(${CLIENT_LIB} PROPERTIES
    VERSION 1.0.0
    SOVERSION 1
    LINK_FLAGS -Wl,--no-undefined
)

target_link_libraries(${CLIENT_LIB}
    Qt${QT_VERSION}::DBus
    Qt${QT_VERSION}::Gui
)

set_target_properties(${CLIENT_LIB} PROPERTIES AUTOMOC TRUE)
# Install

install(TARGETS ${CLIENT_LIB}
        LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
)

# Development files

configure_file(${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)

install(
    FILES ${CLIENT_LIB_HEADERS}
    DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${CLIENT_LIB}/${PROJECT_NAME}"
)
