# Copyright (C) 2026 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

qt_internal_add_module(Contacts
    PLUGIN_TYPES contacts
    SOURCES
        qcontact.cpp
        qcontactabstractrequest.cpp
        qcontactaction.cpp
        qcontactactiondescriptor.cpp
        qcontactactionfactory.cpp
        qcontactactionmanager_p.cpp
        qcontactactiontarget.cpp
        qcontactchangeset.cpp
        qcontactcollection.cpp
        qcontactcollectionchangeset.cpp
        qcontactcollectionid.cpp
        qcontactdetail.cpp
        qcontactfetchhint.cpp
        qcontactfilter.cpp
        qcontactid.cpp
        qcontactmanager.cpp
        qcontactmanager_p.cpp
        qcontactmanagerengine.cpp
        qcontactmanagerenginefactory.cpp
        qcontactobserver.cpp
        qcontactrelationship.cpp
        qcontactsortorder.cpp
        details/qcontactdetails.cpp
        engines/qcontactinvalidbackend.cpp
        filters/qcontactactionfilter.cpp
        filters/qcontactchangelogfilter.cpp
        filters/qcontactcollectionfilter.cpp
        filters/qcontactdetailfilter.cpp
        filters/qcontactdetailrangefilter.cpp
        filters/qcontactidfilter.cpp
        filters/qcontactintersectionfilter.cpp
        filters/qcontactinvalidfilter.cpp
        filters/qcontactrelationshipfilter.cpp
        filters/qcontactunionfilter.cpp
        requests/qcontactcollectionfetchrequest.cpp
        requests/qcontactcollectionremoverequest.cpp
        requests/qcontactcollectionsaverequest.cpp
        requests/qcontactfetchbyidrequest.cpp
        requests/qcontactfetchrequest.cpp
        requests/qcontactidfetchrequest.cpp
        requests/qcontactrelationshipfetchrequest.cpp
        requests/qcontactrelationshipremoverequest.cpp
        requests/qcontactrelationshipsaverequest.cpp
        requests/qcontactremoverequest.cpp
        requests/qcontactsaverequest.cpp
        qcontact.h
        qcontactabstractrequest.h
        qcontactaction.h
        qcontactactiondescriptor.h
        qcontactactionfactory.h
        qcontactactiontarget.h
        qcontactchangeset.h
        qcontactcollection.h
        qcontactcollectionchangeset.h
        qcontactcollectionid.h
        qcontactdetail.h
        qcontactfetchhint.h
        qcontactfilter.h
        qcontactid.h
        qcontactmanager.h
        qcontactmanagerengine.h
        qcontactmanagerenginefactory.h
        qcontactobserver.h
        qcontactrelationship.h
        qcontacts.h
        qcontactsglobal.h
        qcontactsortorder.h
        details/qcontactaddress.h
        details/qcontactanniversary.h
        details/qcontactavatar.h
        details/qcontactbirthday.h
        details/qcontactdetails.h
        details/qcontactdisplaylabel.h
        details/qcontactemailaddress.h
        details/qcontactextendeddetail.h
        details/qcontactfamily.h
        details/qcontactfavorite.h
        details/qcontactgender.h
        details/qcontactgeolocation.h
        details/qcontactglobalpresence.h
        details/qcontactguid.h
        details/qcontacthobby.h
        details/qcontactname.h
        details/qcontactnickname.h
        details/qcontactnote.h
        details/qcontactonlineaccount.h
        details/qcontactorganization.h
        details/qcontactphonenumber.h
        details/qcontactpresence.h
        details/qcontactringtone.h
        details/qcontactsynctarget.h
        details/qcontacttag.h
        details/qcontacttimestamp.h
        details/qcontacttype.h
        details/qcontacturl.h
        details/qcontactversion.h
        filters/qcontactactionfilter.h
        filters/qcontactchangelogfilter.h
        filters/qcontactcollectionfilter.h
        filters/qcontactdetailfilter.h
        filters/qcontactdetailrangefilter.h
        filters/qcontactfilters.h
        filters/qcontactidfilter.h
        filters/qcontactintersectionfilter.h
        filters/qcontactinvalidfilter.h
        filters/qcontactrelationshipfilter.h
        filters/qcontactunionfilter.h
        requests/qcontactcollectionfetchrequest.h
        requests/qcontactcollectionremoverequest.h
        requests/qcontactcollectionsaverequest.h
        requests/qcontactfetchbyidrequest.h
        requests/qcontactfetchrequest.h
        requests/qcontactidfetchrequest.h
        requests/qcontactrelationshipfetchrequest.h
        requests/qcontactrelationshipremoverequest.h
        requests/qcontactrelationshipsaverequest.h
        requests/qcontactremoverequest.h
        requests/qcontactrequests.h
        requests/qcontactsaverequest.h
        qcontact_p.h
        qcontactabstractrequest_p.h
        qcontactactiondescriptor_p.h
        qcontactactionmanager_p.h
        qcontactactiontarget_p.h
        qcontactchangeset_p.h
        qcontactcollection_p.h
        qcontactcollectionchangeset_p.h
        qcontactdetail_p.h
        qcontactfetchhint_p.h
        qcontactfilter_p.h
        qcontactmanager_p.h
        qcontactrelationship_p.h
        qcontactsortorder_p.h
        qcontactspluginsearch_p.h
        engines/qcontactinvalidbackend_p.h
        filters/qcontactactionfilter_p.h
        filters/qcontactchangelogfilter_p.h
        filters/qcontactcollectionfilter_p.h
        filters/qcontactdetailfilter_p.h
        filters/qcontactdetailrangefilter_p.h
        filters/qcontactidfilter_p.h
        filters/qcontactintersectionfilter_p.h
        filters/qcontactrelationshipfilter_p.h
        filters/qcontactunionfilter_p.h
        requests/qcontactrequests_p.h
    LIBRARIES
        Qt::CorePrivate
    PUBLIC_LIBRARIES
        Qt::Core
)

target_include_directories(Contacts PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/requests
    ${CMAKE_CURRENT_SOURCE_DIR}/engines
)

if(DEFINED CONTACTS_DEFAULT_ENGINE)
    target_compile_definitions(Contacts
        PRIVATE Q_CONTACTS_DEFAULT_ENGINE=${CONTACTS_DEFAULT_ENGINE}
    )
endif()
