CMakeLists.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. include(UsePkgConfig)
  2. MACRO(PKGCONFIG_GETVAR _package _var _output_variable)
  3. SET(${_output_variable})
  4. # if pkg-config has been found
  5. IF (PKGCONFIG_EXECUTABLE)
  6. EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull)
  7. # and if the package of interest also exists for pkg-config, then get the information
  8. IF (NOT _return_VALUE)
  9. EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable ${_var} OUTPUT_VARIABLE ${_output_variable})
  10. ENDIF (NOT _return_VALUE)
  11. ENDIF (PKGCONFIG_EXECUTABLE)
  12. ENDMACRO(PKGCONFIG_GETVAR _package _var _output_variable)
  13. macro(dbus_add_activation_service _sources)
  14. PKGCONFIG_GETVAR(dbus-1 session_bus_services_dir _install_dir)
  15. foreach (_i ${_sources})
  16. get_filename_component(_service_file ${_i} ABSOLUTE)
  17. string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i})
  18. set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
  19. configure_file(${_service_file} ${_target})
  20. install(FILES ${_target} DESTINATION ${_install_dir} RENAME "${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}.service")
  21. endforeach (_i ${ARGN})
  22. endmacro(dbus_add_activation_service _sources)
  23. macro(libcloudproviders_add_config _sources)
  24. set(_install_dir "${CMAKE_INSTALL_PREFIX}/share/cloud-providers")
  25. foreach (_i ${_sources})
  26. get_filename_component(_service_file ${_i} ABSOLUTE)
  27. string(REGEX REPLACE "\\.ini.*$" ".ini" _output_file ${_i})
  28. set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
  29. configure_file(${_service_file} ${_target})
  30. install(FILES ${_target} DESTINATION ${_install_dir} RENAME "${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}.ini")
  31. endforeach (_i ${ARGN})
  32. endmacro(libcloudproviders_add_config _sources)
  33. find_package(Qt5 5.12 COMPONENTS DBus)
  34. IF (Qt5DBus_FOUND)
  35. STRING(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR)
  36. STRING(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}")
  37. STRING(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}")
  38. if (NOT DBUS_PREFIX)
  39. set(DBUS_PREFIX "com")
  40. endif ()
  41. set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}")
  42. set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}")
  43. dbus_add_activation_service(org.freedesktop.CloudProviders.service.in)
  44. libcloudproviders_add_config(org.freedesktop.CloudProviders.ini.in)
  45. ENDIF ()