You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
53 lines
1.2 KiB
9 months ago
|
|
||
|
set(read_only_properties
|
||
|
"HEADER_SETS"
|
||
|
"INTERFACE_HEADER_SETS"
|
||
|
"MANUALLY_ADDED_DEPENDENCIES"
|
||
|
"NAME"
|
||
|
"TYPE"
|
||
|
)
|
||
|
set(read_only_properties_imported
|
||
|
"EXPORT_NAME"
|
||
|
"SOURCES"
|
||
|
)
|
||
|
set(read_only_properties_nonimported
|
||
|
"IMPORTED_GLOBAL"
|
||
|
)
|
||
|
set(read_only_properties_160
|
||
|
"ALIAS_GLOBAL"
|
||
|
"BINARY_DIR"
|
||
|
"CXX_MODULE_SETS"
|
||
|
"IMPORTED"
|
||
|
"INTERFACE_CXX_MODULE_SETS"
|
||
|
"LOCATION"
|
||
|
"LOCATION_CONFIG"
|
||
|
"SOURCE_DIR"
|
||
|
)
|
||
|
|
||
|
cmake_policy(GET CMP0160 policy160)
|
||
|
add_library(ReadOnlyLib )
|
||
|
add_library(ReadOnlyImport IMPORTED UNKNOWN)
|
||
|
|
||
|
foreach(target ReadOnlyLib ReadOnlyImport)
|
||
|
get_target_property(is_imported ${target} IMPORTED)
|
||
|
set(are_read_only ${read_only_properties})
|
||
|
if(NOT policy160 STREQUAL "OLD")
|
||
|
list(APPEND are_read_only ${read_only_properties_160})
|
||
|
endif()
|
||
|
if(is_imported)
|
||
|
list(APPEND are_read_only ${read_only_properties_imported})
|
||
|
else()
|
||
|
list(APPEND are_read_only ${read_only_properties_nonimported})
|
||
|
endif()
|
||
|
|
||
|
foreach(prop IN LISTS are_read_only)
|
||
|
set_target_properties(${target} PROPERTIES ${prop} "a_value")
|
||
|
endforeach()
|
||
|
|
||
|
if(policy160 STREQUAL "OLD")
|
||
|
foreach(prop IN LISTS read_only_properties_160)
|
||
|
set_target_properties(${target} PROPERTIES ${prop} "a_value")
|
||
|
endforeach()
|
||
|
endif()
|
||
|
endforeach()
|