diff options
author | Christian Fetzer <fetzer.ch@gmail.com> | 2016-12-21 23:11:45 +0100 |
---|---|---|
committer | Christian Fetzer <fetzer.ch@gmail.com> | 2016-12-28 16:12:56 +0100 |
commit | 14aca9eda3fa48bd0bc25effbddc27cbdb83a097 (patch) | |
tree | a06f8f95b058e8c6d89b663777b578eacc0d9f99 /project | |
parent | ecc339df3a9c251b6bba4c73cd18066fcf65fad6 (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.txt | 2 | ||||
-rw-r--r-- | project/cmake/modules/FindMDNS.cmake | 47 | ||||
-rw-r--r-- | project/cmake/treedata/optional/common/mdns.txt | 1 |
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 |