aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorChristian Fetzer <fetzer.ch@gmail.com>2016-12-21 23:11:45 +0100
committerChristian Fetzer <fetzer.ch@gmail.com>2016-12-28 16:12:56 +0100
commit14aca9eda3fa48bd0bc25effbddc27cbdb83a097 (patch)
treea06f8f95b058e8c6d89b663777b578eacc0d9f99 /project
parentecc339df3a9c251b6bba4c73cd18066fcf65fad6 (diff)
[cmake] Add FindMDNS module
- Fixes Zeroconf on Android (mDNS_embedded) - Link Zeroconf on Windows without pragma lib (mDNS)
Diffstat (limited to 'project')
-rw-r--r--project/cmake/CMakeLists.txt2
-rw-r--r--project/cmake/modules/FindMDNS.cmake47
-rw-r--r--project/cmake/treedata/optional/common/mdns.txt1
3 files changed, 49 insertions, 1 deletions
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
index 43eb7a5ad0..be5c47d25a 100644
--- a/project/cmake/CMakeLists.txt
+++ b/project/cmake/CMakeLists.txt
@@ -115,7 +115,7 @@ endif()
# Optional dependencies
set(optional_deps MicroHttpd MySqlClient SSH XSLT
- Alsa UDEV DBus Avahi SmbClient CCache
+ Alsa UDEV DBus Avahi MDNS SmbClient CCache
PulseAudio VDPAU VAAPI Bluetooth CAP)
# Required, dyloaded deps
diff --git a/project/cmake/modules/FindMDNS.cmake b/project/cmake/modules/FindMDNS.cmake
new file mode 100644
index 0000000000..59416b3d61
--- /dev/null
+++ b/project/cmake/modules/FindMDNS.cmake
@@ -0,0 +1,47 @@
+#.rst:
+# FindMDNS
+# --------
+# Finds the mDNS library
+#
+# This will will define the following variables::
+#
+# MDNS_FOUND - system has mDNS
+# MDNS_INCLUDE_DIRS - the mDNS include directory
+# MDNS_LIBRARIES - the mDNS libraries
+# MDNS_DEFINITIONS - the mDNS definitions
+#
+# and the following imported targets::
+#
+# MDNS::MDNS - The mDNSlibrary
+
+find_path(MDNS_INCLUDE_DIR NAMES dmDnsEmbedded.h dns_sd.h)
+find_library(MDNS_LIBRARY NAMES mDNSEmbedded dnssd)
+
+find_path(MDNS_EMBEDDED_INCLUDE_DIR NAMES mDnsEmbedded.h)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(mDNS
+ REQUIRED_VARS MDNS_LIBRARY MDNS_INCLUDE_DIR)
+
+if(MDNS_FOUND)
+ set(MDNS_INCLUDE_DIRS ${MDNS_INCLUDE_DIR})
+ set(MDNS_LIBRARIES ${MDNS_LIBRARY})
+ set(MDNS_DEFINITIONS -DHAVE_LIBMDNS=1)
+ if(MDNS_EMBEDDED_INCLUDE_DIR)
+ list(APPEND MDNS_DEFINITIONS -DHAVE_LIBMDNSEMBEDDED=1)
+ endif()
+
+ if(NOT TARGET MDNS::MDNS)
+ add_library(MDNS::MDNS UNKNOWN IMPORTED)
+ set_target_properties(MDNS::MDNS PROPERTIES
+ IMPORTED_LOCATION "${MDNS_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${MDNS_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAVE_LIBMDNS=1)
+ if(MDNS_EMBEDDED_INCLUDE_DIR)
+ set_target_properties(MDNS::MDNS PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS HAVE_LIBMDNSEMBEDDED=1)
+ endif()
+ endif()
+endif()
+
+mark_as_advanced(MDNS_INCLUDE_DIR MDNS_EMBEDDED_INCLUDE_DIR MDNS_LIBRARY)
diff --git a/project/cmake/treedata/optional/common/mdns.txt b/project/cmake/treedata/optional/common/mdns.txt
new file mode 100644
index 0000000000..9bebb8921d
--- /dev/null
+++ b/project/cmake/treedata/optional/common/mdns.txt
@@ -0,0 +1 @@
+xbmc/network/mdns mdns # MDNS