cmake: In client configuration file get DBus1_xxx variables from cmake target

The DBus1_xxx variables defined in DBusConfig.cmake for Windows builds
are currently hard-coded values and independent of those of the underlying
cmake target.
To avoid this, these values are retrieved from the corresponding cmake
target. In addition, the cmake allows the construction of the resulting
relocatable runtime paths.

(cherry picked from commit 29c2e9141a)
This commit is contained in:
Ralf Habacker 2021-11-01 13:01:59 +01:00 committed by Simon McVittie
parent 9907deedb1
commit d440173062
2 changed files with 5 additions and 2 deletions

View file

@ -26,9 +26,10 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/DBus1Targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/DBus1Targets.cmake")
endif()
set(DBus1_DEFINITIONS)
# for compatibility, get settings from cmake target
get_target_property(DBus1_DEFINITIONS dbus-1 INTERFACE_COMPILE_DEFINITIONS)
get_target_property(DBus1_INCLUDE_DIRS dbus-1 INTERFACE_INCLUDE_DIRECTORIES)
set(DBus1_LIBRARY dbus-1)
get_target_property(DBus1_LIBRARY dbus-1 IMPORTED_IMPLIB)
else()
message(FATAL_ERROR "Incomplete cmake support in DBus1 find_package configuration")
endif()

View file

@ -299,7 +299,9 @@ else(WIN32)
endif()
endif()
# target definitions passed to the clients
target_include_directories(dbus-1 INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/dbus-1.0>;$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}/dbus-1.0/include>)
target_compile_definitions(dbus-1 INTERFACE "")
# Assume that Linux has -Wl,--version-script and other platforms do not
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")