Scope of cmake_language(DEFER GET_CALL_IDS) et. al. somewhat ambiguous
The docs for the cmake_language(DEFER)
commands that retrieve call IDs or cancel calls by ID do not currently make explicit the scope on which they operate. The docs for GET_CALL_IDS
are particularly sparse:
The currently scheduled list of deferred calls may be retrieved:
cmake_language(DEFER [DIRECTORY <dir>] GET_CALL_IDS <var>)
This will store in
<var>
a semicolon-separated list of deferred call ids.
When no DIRECTORY
option is given, the above doesn't specify whether all deferred IDs from all directory scopes are returned, or just those from the current directory scope. Looking at the source code, it appears to be the latter, but the docs should be explicit about this. The GET_CALL
and CANCEL_CALL
subcommands are similarly imprecise.
Edited by Craig Scott