compile_commands.json was being written for every permutation of
cross configurations. Deduplicate so only one command is output
for each configuration.
Fixes: #23733
If we're creating generation objects for imported targets only, we
don't need the export sets. Only compute build file generators
if generating for all targets.
Fixes: #23709
The INTERFACE_LINK_LIBRARIES_DIRECT property can add direct
link dependencies to the target at the head of the dependency chain.
The checks associated with LINK_LIBRARIES_ONLY_TARGETS also apply
to these link items, but the documentation wasn't updated to reflect
this when the INTERFACE_LINK_LIBRARIES_DIRECT support was added.
This is the name of a placeholder used for some documentation in
`Help/prop_tgt/INTERFACE_LINK_LIBRARIES_DIRECT.txt` that is included in
multiple documents. During development iterations, much of the content
was moved to just `Help/prop_tgt/INTERFACE_LINK_LIBRARIES_DIRECT.rst`,
but the placeholder was not correctly replaced by its property name.
f46b2e9142 cmArgumentParser: Model maybe-missing string with wrapper type
e6d1e29ffa cmArgumentParser: Model maybe-empty and non-empty lists with wrapper types
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7459
The foundation of the Doxygen Find Module's detection methodology
is the command `find_program`, which has inhibited the module from
properly handling user version restrictions when provided.
Because `find_program` historically has always returned after the first
match and does not consider version constraints, users of this module
are inadvertently at the mercy of the command's search procedure.
Essentially, `find_package(Doxygen ...)` will always provide the first
Doxygen build found through said procedure, even if it conflicts with
the user's version requirements, and even if another build exists on
the system that would satisfy those requirements (i.e. shadowing).
Utilizes the new `VALIDATOR` option of `find_program` to ensure all
otherwise detectable builds of Doxygen on a given system are evaluated
and that only a build in compliance with `Doxygen_FIND_VERSION`
et. al., when defined, will be matched against.
Also enables handling of version ranges specified within `find_package`
via the **FindPackageHandleStandardArgs** module.
Finally, ensures that only the major, minor, and patch components of
Doxygen's `--version` output are captured for comparison in cases where
it contains additional information, such as a git commit hash.
Fixes: #23692