add_library(KTactileFeedback SHARED
    qfeedbackeffect.h
    qfeedbackglobal.h
    qfeedbackpluginsearch.h
    qfeedbackplugin.cpp
    qfeedbackeffect_p.h
    qfeedbackeffect.cpp
    qfeedbackactuator.cpp
    qfeedbackplugininterfaces.h
    qfeedbackplugin_p.h
    qfeedbackactuator.h)

add_library(KTactileFeedback::KTactileFeedback ALIAS KTactileFeedback)

target_link_libraries(KTactileFeedback PUBLIC Qt6::Core)

set_target_properties(KTactileFeedback PROPERTIES
    VERSION     ${KTACTILE_FEEDBACK_VERSION}
    SOVERSION   1
    EXPORT_NAME "KTactileFeedback"
)

ecm_generate_export_header(KTactileFeedback
    VERSION ${KTACTILE_FEEDBACK_VERSION}
    BASE_NAME KTactileFeedback
)

ecm_generate_headers(KFeedback_HEADERS
    HEADER_NAMES
    QFeedbackActuator
    QFeedbackEffect
    QFeedbackGlobal
    QFeedbackPluginInterfaces
    QFeedbackPluginSearch

    REQUIRED_HEADERS KFeedback_HEADERS
)

install(FILES ${KFeedback_HEADERS}
        DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KTactileFeedback
        COMPONENT Devel)

install(TARGETS KTactileFeedback
        EXPORT KTactileFeedbackTargets
        ${KF6_INSTALL_TARGETS_DEFAULT_ARGS})

set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KTactileFeedback")

ecm_setup_version(
  PROJECT
  VARIABLE_PREFIX KTactileFeedback
  VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kfeedback_version.h"
  PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KTactileFeedbackConfigVersion.cmake"
  SOVERSION 1)

configure_package_config_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/KTactileFeedbackConfig.cmake.in"
    "${CMAKE_CURRENT_BINARY_DIR}/KTactileFeedbackConfig.cmake"
    INSTALL_DESTINATION  ${CMAKECONFIG_INSTALL_DIR}
    PATH_VARS  CMAKE_INSTALL_PREFIX
)

install(FILES
    "${CMAKE_CURRENT_BINARY_DIR}/KTactileFeedbackConfig.cmake"
    "${CMAKE_CURRENT_BINARY_DIR}/KTactileFeedbackConfigVersion.cmake"
    DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
    COMPONENT Devel
)

install(EXPORT KTactileFeedbackTargets
    DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
    FILE KTactileFeedbackTargets.cmake
    NAMESPACE KTactileFeedback::
)
