Skip to content

FindDoxygen: Implement more complete version checking

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.

Fixes: #23692 (closed)

Merge request reports