add_library(LomiriSystemSettings SHARED item-base.cpp item-base.h)
set_target_properties(LomiriSystemSettings PROPERTIES
VERSION 1.5.0
SOVERSION 1
)

target_include_directories(LomiriSystemSettings PUBLIC
    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib>
    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)

target_link_libraries(LomiriSystemSettings Qt5::Core Qt5::Gui Qt5::Quick Qt5::Qml)

install(TARGETS LomiriSystemSettings
    EXPORT LomiriSystemSettingsTargets
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES item-base.h ItemBase plugin-interface.h PluginInterface
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LomiriSystemSettings")


# pkg-config
set(SYSTEMSETTINGS_LIB LomiriSystemSettings)

join_paths(PC_LIBDIR "\${prefix}" "${LIBDIR}")
join_paths(PC_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
join_paths(PC_PLUGIN_MANIFEST_DIR "\${prefix}" "${PLUGIN_MANIFEST_DIR_BASE}")
join_paths(PC_PLUGIN_MODULE_DIR "\${libdir}" "${PLUGIN_MODULE_DIR_BASE}")
join_paths(PC_PLUGIN_PRIVATE_MODULE_DIR "\${libdir}" "${PLUGIN_PRIVATE_MODULE_DIR_BASE}")
join_paths(PC_PLUGIN_QML_DIR "\${prefix}" "${PLUGIN_QML_DIR_BASE}")

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


# CMake package config
include(CMakePackageConfigHelpers)

set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/LomiriSystemSettings")

set(INSTALL_PLUGIN_MANIFEST_DIR       "${CMAKE_INSTALL_DATADIR}/${MANIFEST_DIR}")
set(INSTALL_PLUGIN_MODULE_DIR         "${CMAKE_INSTALL_LIBDIR}/${MODULE_DIR}")
set(INSTALL_PLUGIN_PRIVATE_MODULE_DIR "${CMAKE_INSTALL_LIBDIR}/${MODULE_DIR}/${PRIVATE_DIR}")
set(INSTALL_PLUGIN_QML_DIR            "${CMAKE_INSTALL_DATADIR}/${MANIFEST_DIR}/${QML_DIR}")

install(EXPORT LomiriSystemSettingsTargets
    NAMESPACE LomiriSystemSettings::
    DESTINATION ${CMAKECONFIG_INSTALL_DIR})

configure_package_config_file(
    LomiriSystemSettingsConfig.cmake.in
    ${CMAKE_CURRENT_BINARY_DIR}/LomiriSystemSettingsConfig.cmake
    INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
    PATH_VARS INSTALL_PLUGIN_MANIFEST_DIR INSTALL_PLUGIN_MODULE_DIR
              INSTALL_PLUGIN_PRIVATE_MODULE_DIR INSTALL_PLUGIN_QML_DIR)

write_basic_package_version_file(
    ${CMAKE_CURRENT_BINARY_DIR}/LomiriSystemSettingsConfigVersion.cmake
    VERSION ${PROJECT_VERSION}
    COMPATIBILITY SameMajorVersion)

install(FILES
    ${CMAKE_CURRENT_BINARY_DIR}/LomiriSystemSettingsConfig.cmake
    ${CMAKE_CURRENT_BINARY_DIR}/LomiriSystemSettingsConfigVersion.cmake
    DESTINATION ${CMAKECONFIG_INSTALL_DIR})
