# extract filename components of all items in src_list in dst_list # example usage: extract_filename_components(ALL_LIBS_BASENAME ALL_LIBS NAME_WE) macro(extract_filename_components dst_list src_list component) set(list_var "${${src_list}}") #message(STATUS "list_var: ${list_var}") #message(STATUS "component: ${component}") foreach(item ${list_var}) get_filename_component(BASENAME ${item} ${component}) list( APPEND ${dst_list} ${BASENAME}) endforeach() #message(STATUS "dst_list: ${${dst_list}}") endmacro() # extract target properties of all items in src_list in dst_list # example usage: extract_target_properties(QT_INCLUDES Qt5::Core INTERFACE_INCLUDE_DIR) macro(extract_target_properties target_props target_list property) set(list_var "${${target_list}}") # message(STATUS "list_var: ${list_var}") #message(STATUS "property: ${property}") foreach(item ${list_var}) get_target_property(value ${item} ${property}) list( APPEND ${target_props} ${value}) endforeach() #message(STATUS "target_props: ${${target_props}}") list(REMOVE_DUPLICATES ${target_props}) endmacro()