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})