# Get all propreties that cmake supports execute_process(COMMAND cmake –help-property-list
OUTPUT_VARIABLE CMAKE_PROPERTY_LIST)
# Convert command output into a CMake list string(REGEX REPLACE “;” “\\;” CMAKE_PROPERTY_LIST “${CMAKE_PROPERTY_LIST}”) string(REGEX REPLACE “n” “;” CMAKE_PROPERTY_LIST “${CMAKE_PROPERTY_LIST}”)
- function(print_properties)
message(“CMAKE_PROPERTY_LIST = ${CMAKE_PROPERTY_LIST}”)
endfunction(print_properties)
- function(print_target_properties tgt)
- if(NOT TARGET ${tgt})
message(“There is no target named ‘${tgt}’”) return()
endif()
- foreach(prop ${CMAKE_PROPERTY_LIST})
string(REPLACE “<CONFIG>” “${CMAKE_BUILD_TYPE}” prop ${prop}) # Fix # https://stackoverflow.com/questions/32197663/how-can-i-remove-the-the-location-property-may-not-be-read-from-target-error-i if(prop STREQUAL “LOCATION”
OR prop MATCHES “^LOCATION_” OR prop MATCHES “_LOCATION$”)
continue()
endif() # message (“Checking ${prop}”) get_property(
propval TARGET ${tgt} PROPERTY ${prop} SET)
- if(propval)
get_target_property(propval ${tgt} ${prop}) message(“${tgt} ${prop} = ${propval}”)
endif()
endforeach(prop)
endfunction(print_target_properties)