Aha! You can, however, create your own properties that will be propagated to subdirectories, using define_property() with the INHERITED argument.
define_property(DIRECTORY
PROPERTY MY_SPECIAL_PROP
INHERITED
BRIEF_DOCS "A propagated special property"
)
set_directory_properties(PROPERTIES
LABELS "test"
MY_SPECIAL_PROP "is a special prop"
)
add_subdirectory(sub)
…Will result in MY_SPECIAL_PROP being set in sub/ as well.
(Interestingly, the documentation for INHERITED describes it as working in completely the opposite way — it’s not that MY_SPECIAL_PROP will also be set in sub/ when you set it at the root level, it’s that requests for MY_SPECIAL_PROP in sub/ will automatically look for properties in the parent scope when they’re not defined in the current scope, as long as they’re marked INHERITED.
I don’t know if that really means INHERITED properties are different from the propagating ones like LABELS, or if LABELS is also an INHERITED property that’s just described more simplistically in the documentation. I also don’t know if it really makes any practical difference whether they work the same way or not.)