-IF(CMAKE_BUILD_TYPE MATCHES Debug)
- CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE)
- IF(HAVE_LIBEFENCE)
- MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...")
- SET(libefence_LIBRARIES "-lefence")
- ENDIF(HAVE_LIBEFENCE)
-ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)
-
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(json-c REQUIRED json-c)
-PKG_CHECK_MODULES(libmicrohttpd REQUIRED libmicrohttpd)
-PKG_CHECK_MODULES(openssl REQUIRED openssl)
-PKG_CHECK_MODULES(uuid REQUIRED uuid)
-PKG_CHECK_MODULES(dbus REQUIRED dbus-1)
-# Optional plugin dependencies
-PKG_CHECK_MODULES(alsa alsa)
-PKG_CHECK_MODULES(pulseaudio libpulse libpulse-simple)
-PKG_CHECK_MODULES(librtlsdr librtlsdr>=0.5.0)
-PKG_CHECK_MODULES(gupnp gupnp-1.0 gupnp-av-1.0 gssdp-1.0 gobject-2.0 gio-2.0)
-
-IF(alsa_FOUND)
- MESSAGE(STATUS "ALSA found ; will compile Audio plugin... (PLUGIN)")
- IF(pulseaudio_FOUND)
- MESSAGE(STATUS "PulseAudio found ; Audio plugin will have PulseAudio support")
- ADD_DEFINITIONS(-DHAVE_PULSE=1)
- ENDIF(pulseaudio_FOUND)
-ENDIF(alsa_FOUND)
-
-IF(librtlsdr_FOUND)
- MESSAGE(STATUS "librtlsdr found ; will compile Radio plugin... (PLUGIN)")
-ENDIF(librtlsdr_FOUND)
-
-IF(gupnp_FOUND)
- MESSAGE(STATUS "gupnp found ; will compile Media plugin... (PLUGIN)")
-ENDIF(gupnp_FOUND)
-
-INCLUDE(FindThreads)
-FIND_PACKAGE(Threads)
-
-SET(include_dirs ${INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/include ${json-c_INCLUDE_DIRS} ${libmicrohttpd_INCLUDE_DIRS} ${uuid_INCLUDE_DIRS} ${dbus_INCLUDE_DIRS} ${alsa_INCLUDE_DIRS} ${pulseaudio_INCLUDE_DIRS} ${librtlsdr_INCLUDE_DIRS} ${gupnp_INCLUDE_DIRS} ${openssl_INCLUDE_DIRS})
-SET(link_libraries ${json-c_LIBRARIES} ${libmicrohttpd_LIBRARIES} ${uuid_LIBRARIES} ${dbus_LIBRARIES} ${alsa_LIBRARIES} ${pulseaudio_LIBRARIES} ${librtlsdr_LIBRARIES} ${gupnp_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${libefence_LIBRARIES} ${openssl_LIBRARIES} -lmagic -lm -ldl -lrt)
-SET(plugin_install_dir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/afb)
-
-ADD_DEFINITIONS(-DPLUGIN_INSTALL_DIR="${plugin_install_dir}")
-
-ADD_SUBDIRECTORY(src)
-ADD_SUBDIRECTORY(plugins)
-
-ADD_EXECUTABLE(afb-daemon $<TARGET_OBJECTS:src>)
-INCLUDE_DIRECTORIES(${include_dirs})
-TARGET_LINK_LIBRARIES(afb-daemon ${link_libraries})
+PKG_CHECK_MODULES(libsystemd libsystemd>=222)
+PKG_CHECK_MODULES(libmicrohttpd libmicrohttpd>=0.9.60)
+PKG_CHECK_MODULES(openssl openssl)
+PKG_CHECK_MODULES(uuid uuid)
+PKG_CHECK_MODULES(cynara cynara-client)
+
+ADD_DEFINITIONS("-DAFS_SUPERVISION_SOCKET=\"${AFS_SUPERVISION_SOCKET}\"")
+ADD_DEFINITIONS("-DAFS_SUPERVISOR_TOKEN=\"${AFS_SUPERVISOR_TOKEN}\"")
+ADD_DEFINITIONS("-DAFS_SUPERVISOR_PORT=${AFS_SUPERVISOR_PORT}")
+
+IF(cynara_FOUND)
+ ADD_DEFINITIONS(-DBACKEND_PERMISSION_IS_CYNARA)
+ENDIF(cynara_FOUND)
+
+IF(HAVE_LIBMAGIC AND libsystemd_FOUND AND libmicrohttpd_FOUND AND openssl_FOUND AND uuid_FOUND)
+ ADD_DEFINITIONS(-DUSE_MAGIC_MIME_TYPE)
+ELSE()
+ IF(NOT HAVE_LIBMAGIC)
+ MESSAGE(WARNING "\"magic.h\" or \"libmagic.so\" missing.
+ Please install the \"file-devel\" or \"libmagic-dev\" package !")
+ ENDIF(NOT HAVE_LIBMAGIC)
+ IF(NOT libsystemd_FOUND)
+ MESSAGE(WARNING "Dependency to 'libsystemd' is missing")
+ ENDIF()
+ IF(NOT libmicrohttpd_FOUND)
+ MESSAGE(WARNING "Dependency to 'libmicrohttpd' is missing")
+ ENDIF()
+ IF(NOT openssl_FOUND)
+ MESSAGE(WARNING "Dependency to 'openssl' is missing")
+ ENDIF()
+ IF(NOT uuid_FOUND)
+ MESSAGE(WARNING "Dependency to 'uuid' is missing")
+ ENDIF()
+ IF(NOT ONLY_DEVTOOLS)
+ MESSAGE(FATAL_ERROR "Can't compile the binder, either define ONLY_DEVTOOLS or install dependencies")
+ ENDIF()
+ENDIF()
+
+ADD_DEFINITIONS(-DAFB_VERSION="${PROJECT_VERSION}")
+
+INCLUDE_DIRECTORIES(
+ ${INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/include
+ ${json-c_INCLUDE_DIRS}
+ ${libsystemd_INCLUDE_DIRS}
+ ${libmicrohttpd_INCLUDE_DIRS}
+ ${uuid_INCLUDE_DIRS}
+ ${openssl_INCLUDE_DIRS}
+ ${cynara_INCLUDE_DIRS}
+)
+
+SET(link_libraries
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${json-c_LDFLAGS}
+ ${libsystemd_LDFLAGS}
+ ${libmicrohttpd_LDFLAGS}
+ ${uuid_LDFLAGS}
+ ${openssl_LDFLAGS}
+ ${cynara_LDFLAGS}
+ ${LIBMAGIC_LDFLAGS}
+ -ldl
+ -lrt
+ )
+
+ADD_SUBDIRECTORY(src/devtools)
+
+IF(ONLY_DEVTOOLS)
+ MESSAGE(WARNING "Only DEVTOOLS are compiled, not the binder!")
+ELSE()
+
+ ###########################################################################
+ # activates the monitoring by default
+ if(INCLUDE_MONITORING AND NOT ONLY_DEVTOOLS)
+ add_definitions(-DWITH_MONITORING_OPTION)
+ INSTALL(DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/test/monitoring
+ DESTINATION
+ ${INTRINSIC_BINDING_DIR}
+ )
+ endif()
+
+ ###########################################################################
+
+ ADD_SUBDIRECTORY(src)
+ ADD_SUBDIRECTORY(src/tests)
+ ADD_SUBDIRECTORY(include)
+ ADD_SUBDIRECTORY(bindings)
+
+ ############################################################
+ # installs the pkgconfig files
+ CONFIGURE_FILE(afb-daemon.pc.in afb-daemon.pc @ONLY)
+ CONFIGURE_FILE(libafbwsc.pc.in libafbwsc.pc @ONLY)
+
+ INSTALL(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/afb-daemon.pc
+ ${CMAKE_CURRENT_BINARY_DIR}/libafbwsc.pc
+ DESTINATION
+ ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+
+ENDIF()
+
+IF(INCLUDE_SUPERVISOR)
+ CONFIGURE_FILE(afs-supervisor.service.in afs-supervisor.service @ONLY)
+ INSTALL(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/afs-supervisor.service
+ DESTINATION
+ ${UNITDIR_SYSTEM}
+ )
+ENDIF()