一、概念
set_target_properties(target PROPERTIES property_name property_value) 向某target设置关联属性 get_target_property(变量A target 属性key) 向某target获取key对应的值然后赋值给变量A
二、具体cmake配置
cmake_minimum_required ( VERSION 3.17 )
project ( target_test )
add_executable( target_test main.cpp )
set_target_properties ( target_test PROPERTIES AAA 123 )
set_target_properties ( target_test PROPERTIES BBB 456 )
get_target_property ( VAR1 target_test AAA )
get_target_property ( VAR2 target_test BBB )
message ( STATUS "VAR1 = ${VAR1}" )
message ( STATUS "VAR2 = ${VAR2}" )
set ( t_name )
set ( t_value )
list ( APPEND t_name XXX )
list ( APPEND t_value 1 )
list ( APPEND t_name YYY )
list ( APPEND t_value 2 )
message ( STATUS "t_name = ${t_name}" )
message ( STATUS "t_value = ${t_value}" )
list ( LENGTH t_name len )
math ( EXPR my_len "${len} - 1")
message ( STATUS "len = ${len}" )
foreach ( val RANGE ${my_len} )
list ( GET t_name ${val} val1 )
list ( GET t_value ${val} val2 )
message ( STATUS "${val1} ${val2}" )
endforeach ()
foreach ( val RANGE ${my_len} )
list ( GET t_name ${val} val1 )
list ( GET t_value ${val} val2 )
#message ( STATUS "${val1} ${val2}" )
set_target_properties ( target_test PROPERTIES ${val1} ${val2} )
endforeach ()
get_target_property ( MY_VAR1 target_test XXX )
get_target_property ( MY_VAR2 target_test YYY )
message ( STATUS "MY_VAR1 = ${MY_VAR1}" )
message ( STATUS "MY_VAR2 = ${MY_VAR2}" )