CMakeLists.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # ITNOA
  2. set(DNSSD_IMPLEMENTATION_LIBRARY "")
  3. macro(ADD_AVAHI)
  4. find_package(Avahi REQUIRED)
  5. if(AVAHI_FOUND)
  6. include_directories("${AVAHI_INCLUDE_DIR}")
  7. message(STATUS "Avahi Support Enabled")
  8. add_subdirectory( Avahi )
  9. set(DNSSD_IMPLEMENTATION_LIBRARY "DNSSDAvahi")
  10. else()
  11. message(ERROR "Avahi does not found, please make install it")
  12. endif()
  13. endmacro()
  14. macro(ADD_BONJOUR)
  15. find_package(Bonjour REQUIRED)
  16. if(BONJOUR_FOUND)
  17. if(NOT APPLE)
  18. include_directories("${BONJOUR_INCLUDE_DIR}")
  19. endif()
  20. message(STATUS "Bonjour Support Enabled")
  21. add_subdirectory( Bonjour )
  22. set(DNSSD_IMPLEMENTATION_LIBRARY "DNSSDBonjour")
  23. else()
  24. message(ERROR "Bonjour does not found, please make install sdk")
  25. endif()
  26. endmacro()
  27. set(LIBNAME "DNSSD")
  28. set(POCO_LIBNAME "Poco${LIBNAME}")
  29. # Sources
  30. file(GLOB SRCS_G "src/*.cpp")
  31. POCO_SOURCES_AUTO( SRCS ${SRCS_G})
  32. # Headers
  33. file(GLOB_RECURSE HDRS_G "include/*.h" )
  34. POCO_HEADERS_AUTO( SRCS ${HDRS_G})
  35. if (NOT POCO_STATIC)
  36. add_definitions(-DTHREADSAFE)
  37. endif (NOT POCO_STATIC)
  38. add_library( "${LIBNAME}" ${LIB_MODE} ${SRCS} )
  39. add_library( "${POCO_LIBNAME}" ALIAS "${LIBNAME}")
  40. set_target_properties( "${LIBNAME}"
  41. PROPERTIES
  42. VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION}
  43. OUTPUT_NAME ${POCO_LIBNAME}
  44. DEFINE_SYMBOL DNSSD_EXPORTS
  45. )
  46. target_link_libraries( "${LIBNAME}" Foundation Net)
  47. target_include_directories( "${LIBNAME}"
  48. PUBLIC
  49. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  50. $<INSTALL_INTERFACE:include>
  51. PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
  52. )
  53. target_compile_definitions("${LIBNAME}" PUBLIC ${LIB_MODE_DEFINITIONS})
  54. POCO_INSTALL("${LIBNAME}")
  55. POCO_GENERATE_PACKAGE("${LIBNAME}")
  56. if(ENABLE_DNSSD_DEFAULT)
  57. if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") # `UNIX AND NOT APPLE` it is not equal to Linux ;)
  58. set(LINUX TRUE)
  59. endif()
  60. if(LINUX)
  61. ADD_AVAHI()
  62. else()
  63. ADD_BONJOUR()
  64. endif()
  65. endif()
  66. if(ENABLE_DNSSD_AVHAI)
  67. ADD_AVAHI()
  68. endif()
  69. if(ENABLE_DNSSD_BONJOUR)
  70. ADD_BONJOUR()
  71. endif()
  72. if (ENABLE_SAMPLES)
  73. add_subdirectory(samples)
  74. endif ()