CMake: check version for some properties in fl_debug_target()

Debug only, if fl_debug_target() is used:

Prior to CMake 3.19 some properties of "INTERFACE_LIBRARY targets"
can't be read with get_property(). These properties are now
excluded if the CMake version is lower than 3.19.
This commit is contained in:
Albrecht Schlosser 2025-04-02 19:59:56 +02:00
parent 8b28e38942
commit 794d493eb6

View File

@ -117,16 +117,20 @@ function(fl_debug_target name)
### INTERFACE_LOCATION) ### INTERFACE_LOCATION)
### endif() ### endif()
list(APPEND _props if(NOT _type STREQUAL "INTERFACE_LIBRARY" OR CMAKE_VERSION VERSION_GREATER_EQUAL "3.19")
# Before 3.19: "INTERFACE_LIBRARY targets may only have whitelisted properties"
list(APPEND _props
INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES
LINK_DIRECTORIES LINK_DIRECTORIES
LINK_LIBRARIES LINK_LIBRARIES
COMPILE_DEFINITIONS COMPILE_DEFINITIONS)
INTERFACE_COMPILE_DEFINITIONS endif()
INTERFACE_COMPILE_FEATURES
INTERFACE_INCLUDE_DIRECTORIES list(APPEND _props
INTERFACE_LINK_DIRECTORIES INTERFACE_COMPILE_DEFINITIONS
INTERFACE_LINK_LIBRARIES) INTERFACE_INCLUDE_DIRECTORIES
INTERFACE_LINK_DIRECTORIES
INTERFACE_LINK_LIBRARIES)
foreach(prop ${_props}) foreach(prop ${_props})
get_target_property(${prop} ${name} ${prop}) get_target_property(${prop} ${name} ${prop})