add_definitions(-DBOOST_LOG_DYN_LINK)

set(TARGET lomiri-download-manager-client)

set(SOURCES
        lomiri/download_manager/download_impl.cpp
        lomiri/download_manager/download_interface.cpp
        lomiri/download_manager/downloads_list_impl.cpp
        lomiri/download_manager/download_pendingcall_watcher.cpp
        lomiri/download_manager/error.cpp
        lomiri/download_manager/group_download.cpp
        lomiri/download_manager/logging/logger.cpp
        lomiri/download_manager/manager.cpp
        lomiri/download_manager/manager_impl.cpp
        lomiri/download_manager/manager_interface.cpp
        lomiri/download_manager/manager_pendingcall_watcher.cpp
        lomiri/download_manager/pending_call_watcher.cpp
        lomiri/download_manager/properties_interface.cpp
)

set(PUBLIC_HEADERS
        lomiri/download_manager/download.h
        lomiri/download_manager/downloads_list.h
        lomiri/download_manager/error.h
        lomiri/download_manager/group_download.h
        lomiri/download_manager/manager.h
        lomiri/download_manager/logging/logger.h
)

set(PRIVATE_HEADERS
        lomiri/download_manager/download_impl.h
        lomiri/download_manager/download_interface.h
        lomiri/download_manager/downloads_list_impl.h
        lomiri/download_manager/download_pendingcall_watcher.h
        lomiri/download_manager/manager_impl.h
        lomiri/download_manager/manager_interface.h
        lomiri/download_manager/manager_pendingcall_watcher.h
        lomiri/download_manager/pending_call_watcher.h
        lomiri/download_manager/properties_interface.cpp
)

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${Boost_INCLUDE_DIRS})
include_directories(${CMAKE_SOURCE_DIR}/src/common/public)
include_directories(${CMAKE_SOURCE_DIR}/src/downloads/common)

add_library(${TARGET} SHARED 
        ${SOURCES}
        ${PUBLIC_HEADERS}
        ${PRIVATE_HEADERS}
)

set(symbol_map "${CMAKE_SOURCE_DIR}/src/downloads/client/symbols.map")
set_target_properties(
        ${TARGET}

        PROPERTIES
        LINK_FLAGS "${ldflags} -Wl,--version-script,${symbol_map}"
        LINK_DEPENDS ${symbol_map}
        VERSION ${LDM_VERSION_MAJOR}.${LDM_VERSION_MINOR}.${LDM_VERSION_PATCH}
        SOVERSION ${LDM_VERSION_MAJOR}
)

target_link_libraries(${TARGET}
        ${Boost_LIBRARIES}
        Qt5::DBus
        ldm-common
        lomiri-download-manager-common
)

configure_file(${TARGET}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc @ONLY)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/download_manager)
