Элементы
PRIVATE и PUBLI C будут заполнять свойство INCLUDE_DIRECTORIES для .
Примерно так:
set(mode "PRIVATE") # or PUBLIC, from target_include_directories arguments
# Get interface include directories
target_get_proprety(incdirs B INTERFACE_INCLUDE_DIRECTORIES)
if(mode STREQUAL "PUBLIC" OR mode STREQUAL "PRIVATE")
set_properties(TARGET A APPEND PROPERTY INCLUDE_DIRECTORIES ${incdirs})
endif()
# when mode is PUBLIC or INTERFACE, they get also added to A's INTERFACE_INCLUDE_DIRECTORIES
Я думаю, слово " populate"можно заменить на" append"без потери смысла.
Я не уверен, что чем заполнить свойство 'INCLUDE_DIRECTORIES'?
С содержимым INTERFACE_INCLUDE_DIRECTORIES от другой цели.
Например, target_include_directories (A PUBLI C B) заполняет INCLUDE_DIRECTORIES 'здесь означает копирование свойства INCLUDE_DIRECTORIES B в свойство INCLUDE_DIRECTORIES A?
Означает добавление INTERFACE_INCLUDE_DIRECTORIES
B к INCLUDE_DIRECTORIES
и к INTERFACE_INCLUDE_DIRECTORIES
.