CMake: improve output of fl_debug_target()

Todo: check "*LOCATION" properties ...
This commit is contained in:
Albrecht Schlosser 2024-05-05 19:40:27 +02:00
parent 38e1d6b099
commit 53543acb2e

View File

@ -97,35 +97,43 @@ function(fl_debug_target name)
set(var "${name}")
fl_expand_name(var "${name}" 40)
# these properties are always supported:
set(_props ALIASED_TARGET TYPE)
# these properties are not supported before 3.20 for *some* target types
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20)
list(APPEND _props
LOCATION
IMPORTED_LOCATION
INTERFACE_LOCATION)
endif()
# these properties are always supported:
list(APPEND _props
INTERFACE_INCLUDE_DIRECTORIES
INTERFACE_LINK_DIRECTORIES
INTERFACE_LINK_LIBRARIES)
if(TARGET ${name})
message(STATUS "${var} = <target>")
foreach(prop ${_props})
get_target_property(${prop} ${name} ${prop})
if(NOT ${prop})
set(${prop} "")
endif()
fl_debug_var(${prop})
endforeach()
else()
if(NOT TARGET ${name})
message(STATUS "${var} = <not a target>")
message(STATUS "")
return()
endif()
get_target_property(_type ${name} TYPE)
# message(STATUS "${var} = target, type = ${_type}")
# these properties are always supported:
set(_props NAME TYPE ALIASED_TARGET)
# these properties can't be read from executable target types
### if(NOT _type STREQUAL "EXECUTABLE")
### list(APPEND _props
### LOCATION
### IMPORTED_LOCATION
### INTERFACE_LOCATION)
### endif()
list(APPEND _props
INCLUDE_DIRECTORIES
LINK_DIRECTORIES
LINK_LIBRARIES
COMPILE_DEFINITIONS
INTERFACE_COMPILE_DEFINITIONS
INTERFACE_INCLUDE_DIRECTORIES
INTERFACE_LINK_DIRECTORIES
INTERFACE_LINK_LIBRARIES)
foreach(prop ${_props})
get_target_property(${prop} ${name} ${prop})
if(NOT ${prop})
set(${prop} "")
endif()
fl_debug_var(${prop})
endforeach()
message(STATUS "")
endfunction(fl_debug_target)