Warning, /frameworks/kdnssd/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 add_library(KF5DNSSD)
0002 set_target_properties(KF5DNSSD PROPERTIES
0003    VERSION     "${KDNSSD_VERSION}"
0004    SOVERSION   "${KDNSSD_SOVERSION}"
0005    EXPORT_NAME DNSSD
0006 )
0007 
0008 ecm_create_qm_loader(KF5DNSSD kdnssd5_qt)
0009 
0010 target_sources(KF5DNSSD PRIVATE
0011     servicebase.cpp
0012     servicemodel.cpp
0013     domainmodel.cpp
0014 )
0015 
0016 if (AVAHI_FOUND)
0017     include_directories( ${AVAHI_INCLUDE_DIR} )
0018     target_sources(KF5DNSSD PRIVATE
0019         avahi-domainbrowser.cpp
0020         avahi-servicebrowser.cpp
0021         avahi-remoteservice.cpp
0022         avahi-publicservice.cpp
0023         avahi-servicetypebrowser.cpp
0024         avahi_server_interface.cpp
0025         avahi_serviceresolver_interface.cpp
0026         avahi_entrygroup_interface.cpp
0027         avahi_listener.cpp
0028     )
0029     set(kdnssd_dbus_LIB_SRCS)
0030     qt_add_dbus_interface(kdnssd_dbus_LIB_SRCS org.freedesktop.Avahi.DomainBrowser.xml avahi_domainbrowser_interface)
0031     qt_add_dbus_interface(kdnssd_dbus_LIB_SRCS org.freedesktop.Avahi.ServiceBrowser.xml avahi_servicebrowser_interface)
0032     qt_add_dbus_interface(kdnssd_dbus_LIB_SRCS org.freedesktop.Avahi.ServiceTypeBrowser.xml avahi_servicetypebrowser_interface)
0033     target_sources(KF5DNSSD PRIVATE ${kdnssd_dbus_LIB_SRCS})
0034 elseif (DNSSD_FOUND)
0035     include_directories( ${DNSSD_INCLUDE_DIR} )
0036     target_sources(KF5DNSSD PRIVATE
0037         mdnsd-domainbrowser.cpp
0038         mdnsd-remoteservice.cpp
0039         mdnsd-publicservice.cpp
0040         mdnsd-responder.cpp
0041         mdnsd-servicebrowser.cpp
0042         mdnsd-servicetypebrowser.cpp
0043     )
0044 else ()
0045     target_sources(KF5DNSSD PRIVATE
0046         dummy-domainbrowser.cpp
0047         dummy-remoteservice.cpp
0048         dummy-publicservice.cpp
0049         dummy-servicebrowser.cpp
0050         dummy-servicetypebrowser.cpp
0051     )
0052 
0053 endif ()
0054 
0055 ecm_generate_export_header(KF5DNSSD
0056     EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdnssd_export.h
0057     BASE_NAME KDNSSD
0058     GROUP_BASE_NAME KF
0059     VERSION ${KF_VERSION}
0060     DEPRECATED_BASE_VERSION 0
0061     DEPRECATION_VERSIONS 4.0
0062     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0063 )
0064 
0065 # Apps must include <KDNSSD/File> or <kdnssd/file.h>
0066 target_include_directories(KF5DNSSD INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD>")
0067 
0068 target_link_libraries(KF5DNSSD PUBLIC Qt${QT_MAJOR_VERSION}::Network)
0069 
0070 if (AVAHI_FOUND OR DNSSD_FOUND)
0071     target_link_libraries(KF5DNSSD PRIVATE Qt${QT_MAJOR_VERSION}::DBus)
0072 endif ()
0073 
0074 if (DNSSD_FOUND)
0075   target_link_libraries(KF5DNSSD PRIVATE ${DNSSD_LIBRARIES})
0076 endif ()
0077 
0078 set(KDNSSD_BUILD_INCLUDE_DIRS ${KDNSSD_BINARY_DIR})
0079 target_include_directories(KF5DNSSD PUBLIC "$<BUILD_INTERFACE:${KDNSSD_BUILD_INCLUDE_DIRS}>")
0080 
0081 ecm_generate_headers(KDNSSD_CamelCase_HEADERS
0082   HEADER_NAMES
0083   DomainBrowser
0084   RemoteService
0085   ServiceTypeBrowser
0086   PublicService
0087   ServiceBase
0088   ServiceBrowser
0089   ServiceModel
0090   DomainModel
0091 
0092   PREFIX KDNSSD
0093   REQUIRED_HEADERS kdnssd_HEADERS
0094 )
0095 
0096 install(FILES ${KDNSSD_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD/KDNSSD COMPONENT Devel)
0097 
0098 install(TARGETS KF5DNSSD EXPORT KF5DNSSDTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0099 
0100 ########### install files ###############
0101 install(FILES
0102   ${CMAKE_CURRENT_BINARY_DIR}/kdnssd_export.h
0103   ${kdnssd_HEADERS}
0104   DESTINATION  ${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD/kdnssd COMPONENT Devel
0105 )
0106 
0107 # provide compat headers for old broken include path prefix dnssd/ & DNSSD/
0108 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0109    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.84.0)
0110     function(generate_compat_headers)
0111         foreach(classname ${ARGV})
0112             string(TOLOWER ${classname} classname_lc)
0113             set(HEADER_NAME "${classname_lc}.h")
0114             # normal header
0115             set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${HEADER_NAME}")
0116             set(NEW_INCLUDE "kdnssd/${HEADER_NAME}")
0117             configure_file(compatheader.h.in ${compat_header} @ONLY)
0118             install(FILES ${compat_header}
0119                 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD/dnssd
0120                 COMPONENT Devel
0121             )
0122             # CamelCase header
0123             set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${classname}")
0124             set(NEW_INCLUDE "KDNSSD/${classname}")
0125             configure_file(compatheader.h.in ${compat_header} @ONLY)
0126             install(FILES ${compat_header}
0127                 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD/DNSSD
0128                 COMPONENT Devel
0129             )
0130         endforeach()
0131     endfunction()
0132 
0133     generate_compat_headers(
0134         DomainBrowser
0135         RemoteService
0136         ServiceTypeBrowser
0137         PublicService
0138         ServiceBase
0139         ServiceBrowser
0140         ServiceModel
0141         DomainModel
0142     )
0143 endif()
0144 
0145 if(BUILD_QCH)
0146     ecm_add_qch(
0147         KF5DNSSD_QCH
0148         NAME KDNSSD
0149         BASE_NAME KF5DNSSD
0150         VERSION ${KF_VERSION}
0151         ORG_DOMAIN org.kde
0152         SOURCES # using only public headers, to cover only public API
0153             ${kdnssd_HEADERS}
0154         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0155         LINK_QCHS
0156             Qt5Network_QCH
0157         INCLUDE_DIRS
0158             ${CMAKE_CURRENT_BINARY_DIR}
0159             ${KDNSSD_BUILD_INCLUDE_DIRS}
0160         BLANK_MACROS
0161             KDNSSD_EXPORT
0162             KDNSSD_DEPRECATED
0163             KDNSSD_DEPRECATED_EXPORT
0164             "KDNSSD_DEPRECATED_VERSION(x, y, t)"
0165         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0166         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0167         COMPONENT Devel
0168     )
0169 endif()
0170 
0171 include(ECMGeneratePriFile)
0172 ecm_generate_pri_file(BASE_NAME KDNSSD LIB_NAME KF5DNSSD DEPS "network" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KDNSSD)
0173 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})