summaryrefslogtreecommitdiffstats
path: root/Help/release
diff options
context:
space:
mode:
authorChristian Heimlich <chris@pcserenity.com>2022-07-03 05:36:36 (GMT)
committerChristian Heimlich <chris@pcserenity.com>2022-07-07 17:41:31 (GMT)
commiteaec9cf65dc3a1136d6d1f97ca6e087d58b5e07a (patch)
tree53442db42cd9c1c64527323d92aab549cf582ab1 /Help/release
parentf1e38ec0a7208836c26c309693c90659e7d0baa7 (diff)
downloadCMake-eaec9cf65dc3a1136d6d1f97ca6e087d58b5e07a.zip
CMake-eaec9cf65dc3a1136d6d1f97ca6e087d58b5e07a.tar.gz
CMake-eaec9cf65dc3a1136d6d1f97ca6e087d58b5e07a.tar.bz2
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. 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
Diffstat (limited to 'Help/release')
-rw-r--r--Help/release/dev/finddoxygen-better-version-checking.rst11
1 files changed, 11 insertions, 0 deletions
diff --git a/Help/release/dev/finddoxygen-better-version-checking.rst b/Help/release/dev/finddoxygen-better-version-checking.rst
new file mode 100644
index 0000000..3c2215d
--- /dev/null
+++ b/Help/release/dev/finddoxygen-better-version-checking.rst
@@ -0,0 +1,11 @@
+finddoxygen-better-version-checking
+-----------------------------------
+
+* The :module:`FindDoxygen` module now evaluates as many candidate
+ Doxygen installs as are necessary to satisfy version constraints,
+ with the package considered to be not found if none are available.
+
+* The :module:`FindDoxygen` module now handles version ranges.
+
+* The :module:`FindDoxygen` module now ignores non-semantic portions
+ of the output from Doxygen's `--version` option.