Allow CMake dependencies to be interfaces

In some cases (see https://github.com/bincrafters/community/issues/1181),
the dependencies can be library interfaces.

As CMake's get_target_property is not tolerant about what properties can
be extracted on different library types, it is necessary to make a
distinction between interface libraries and plain libraries.

Closes https://github.com/wxWidgets/wxWidgets/pull/2058
This commit is contained in:
Thomas Khyn
2020-09-25 20:33:59 +12:00
committed by Vadim Zeitlin
parent bf7965a2d7
commit d9deaa8b76

View File

@@ -33,7 +33,12 @@ macro(wx_get_dependencies var lib)
get_target_property(deps wx${lib} LINK_LIBRARIES)
foreach(dep IN LISTS deps)
if(TARGET ${dep})
get_target_property(dep_name ${dep} OUTPUT_NAME)
get_target_property(dep_type ${dep} TYPE)
if (dep_type STREQUAL "INTERFACE_LIBRARY")
get_target_property(dep_name ${dep} INTERFACE_OUTPUT_NAME)
else()
get_target_property(dep_name ${dep} OUTPUT_NAME)
endif()
set(dep_name "-l${dep_name}")
else()
get_filename_component(dep_name ${dep} NAME)