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.
This commit is contained in:
Ralf Habacker 2021-11-01 13:01:59 +01:00
parent 7cc31643c7
commit 29c2e9141a
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")