CMakeLists.txt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. macro(dbus_add_activation_service _sources)
  2. pkg_get_variable(_install_dir dbus-1 session_bus_services_dir)
  3. foreach (_i ${_sources})
  4. get_filename_component(_service_file ${_i} ABSOLUTE)
  5. string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i})
  6. set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
  7. configure_file(${_service_file} ${_target})
  8. install(FILES ${_target} DESTINATION ${_install_dir} RENAME "${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}.service")
  9. endforeach (_i ${ARGN})
  10. endmacro(dbus_add_activation_service _sources)
  11. macro(libcloudproviders_add_config _sources)
  12. set(_install_dir "${CMAKE_INSTALL_PREFIX}/share/cloud-providers")
  13. foreach (_i ${_sources})
  14. get_filename_component(_service_file ${_i} ABSOLUTE)
  15. string(REGEX REPLACE "\\.ini.*$" ".ini" _output_file ${_i})
  16. set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
  17. configure_file(${_service_file} ${_target})
  18. install(FILES ${_target} DESTINATION ${_install_dir} RENAME "${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}.ini")
  19. endforeach (_i ${ARGN})
  20. endmacro(libcloudproviders_add_config _sources)
  21. find_package(Qt5 5.15 COMPONENTS DBus)
  22. IF (Qt5DBus_FOUND)
  23. STRING(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR)
  24. STRING(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}")
  25. STRING(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}")
  26. if (NOT DBUS_PREFIX)
  27. set(DBUS_PREFIX "com")
  28. endif ()
  29. set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}")
  30. set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}")
  31. dbus_add_activation_service(org.freedesktop.CloudProviders.service.in)
  32. libcloudproviders_add_config(org.freedesktop.CloudProviders.ini.in)
  33. ENDIF ()