summaryrefslogtreecommitdiff
path: root/Modules/FindDoxygen.cmake
Commit message (Collapse)AuthorAgeFilesLines
* FindDoxygen: Optionally use custom config fileLe Go2023-04-271-4/+16
|
* Help: Fix some redirects reported with sphinx linkcheckAlex Turbov2022-11-071-7/+7
| | | | Mostly it's about replace `http:` with `https:` protocol.
* FindDoxygen: Implement more complete version checkingChristian Heimlich2022-07-071-7/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* FindDoxygen: clarify the CMake variable naming schemeBen Boeckel2021-03-251-1/+2
|
* FindDoxygen: Prevent CMP0054 policy warningsCraig Scott2021-02-281-0/+1
| | | Fixes: #21871
* Help: Add `.. versionadded` directives to module docsNikita Nemkin2020-12-021-34/+45
| | | | Issue: #19715
* FindDoxygen: build the generated file contents using temporary stringsRonald Hiemstra2020-09-161-7/+11
| | | | | | | | | | Incrementally writing to a file, could result in write (permission denied) errors. Those errors are probably due to file-monitoring processes having a temporary lock on a generated file. The implemented solution builds the content of the generated file as string and in the end the built string is written to the generated file. Fixes: #21190
* FindDoxygen: Allow generated files with USE_STAMP_FILECraig Scott2020-05-091-3/+5
| | | | | Fixes: #20597
* FindDoxygen: add USE_STAMP_FILE optionNikita Sirgienko2019-09-061-17/+53
| | | | The new option enables the behavior of only building if sources change.
* FindDoxygen: Use ADDITIONAL_CLEAN_FILES for cleaningSebastian Holtermann2019-05-151-1/+1
| | | | | Replace use of the deprecated `ADDITIONAL_MAKE_CLEAN_FILES` directory property with the new `ADDITIONAL_CLEAN_FILES` directory property.
* Merge topic 'doxygen-escaping'Brad King2019-01-281-1/+3
|\ | | | | | | | | | | | | | | e81fd5d5ba FindDoxygen: Escape backslashes in default values Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Julien Schueller <schueller@phimeca.com> Merge-request: !2867
| * FindDoxygen: Escape backslashes in default valuesCraig Scott2019-01-271-1/+3
| | | | | | | | | | | | | | Doxygen 1.8.15 added a new LATEX_MAKEINDEX_CMD config item and it has a default value that contains a backslash on some installations. Fixes: #18738
* | FindDoxygen: Avoid Windows-specific GLOB on other platformsNoel Eck2018-11-261-7/+12
|/ | | | | | | | | | When `$ENV{ProgramFiles}` is empty, GLOB takes `/Graphviz*/bin` as a path cusing the implementation to look at every directory in `/`. If the system has a slow(er) path mounted on '/' then `stat` call can take some time. There *may* be a better fix for this elsewhere, but for now simply do this GLOB only on Windows. Signed-off-by: Noel Eck <noel.eck@intel.com>
* FindDoxygen: Ensure policy settings allow use of IN_LISTBrad King2018-09-111-0/+5
| | | | | | | | | | In commit v3.9.0-rc1~55^2 (Improve Doxygen support, 2017-04-10) use of the `IN_LIST` condition was added, but this is only supported when policy CMP0057 is set to NEW. Add a policy scope around the module and enable the policy within it. Otherwise it works only in projects that happen to enable the policy. Fixes: #18361
* FindDoxygen: add optional ALL argumentDavid Demelier2018-05-241-2/+10
|
* FindDoxygen: On macOS search in '/Applications/Utilities' tooThomas Thielemann2018-01-161-0/+5
| | | | | | `FindDoxygen` already searches in hard-coded `/Applications/Doxygen.app` directories. Search in the `Utilities` subdirectory too in case users choose to put doxygen there.
* FindDoxygen: Add DOXYGEN_VERBATIM_VARS for quote preventionCraig Scott2018-01-031-8/+51
| | | | | Each CMake variable listed in DOXYGEN_VERBATIM_VARS will not have any automatic quoting applied to it when written to the Doxyfile.
* FindDoxygen: Fix setting of HAVE_DOT in non-backward-compat modeAndré Apitzsch2017-11-101-1/+5
| | | | | | `DOXYGEN_DOT_FOUND` is only set if `_Doxygen_keep_backward_compat` is used (when no components are requested), so use `Doxygen_dot_FOUND` directly. Preserve the "YES" or "NO" value used previously.
* FindDoxygen: Create DOXYGEN_OUTPUT_DIRECTORY if it doesn't existRobert Dailey2017-07-061-3/+11
| | | | | If the doxygen output directory does not exist, create it prior to running the doxygen commands.
* FindDoxygen: Use a stable reference to the location of global resourcesRobert Dailey2017-06-291-5/+5
| | | | | | | | | | | | | FindDoxygen generates some files based on the version of Doxygen whose content will not vary across a project and are therefore a global resource that can be shared by all calls to `find_package(Doxygen)` and to `doxygen_add_docs`. We currently use `${PROJECT_BINARY_DIR}` to reference their location, but this is not stable because `project()` calls in a subdirectory can change it. Use `${CMAKE_BINARY_DIR}` instead. Reviewed-by: Craig Scott <craig.scott@crascit.com> Fixes: #17022
* FindDoxygen: Add private prefix to internal variablesBrad King2017-06-271-6/+6
| | | | | | Since commit v3.9.0-rc1~55^2 (Improve Doxygen support, 2017-04-10) we accidentally leave a non-prefixed internal `result` variable set. This may interfere with project code. Add a prefix to avoid this.
* FindDoxygen: Create imported targets at most once in a given scopeBrad King2017-06-091-16/+24
| | | | | | The imported targets added by commit v3.9.0-rc1~55^2 (Improve Doxygen support, 2017-04-10) need to be guarded against duplicate creation on multiple inclusion.
* FindDoxygen: Restore DOXYGEN_DOT_FOUND variableKonstantin Podsvirov2017-06-071-1/+1
| | | | | | The changes in commit v3.9.0-rc1~55^2 (Improve Doxygen support, 2017-04-10) accidentally dropped this variable from its compatibility mode.
* Improve Doxygen supportAlex Turbov2017-05-241-124/+997
| | | | | | | | | | | | | | | | | | | | | Except Graphviz's `dot` Doxygen may use few other utilities like `mscgen` (Message Sequence Chart) and `dia` (Diagram Editor). Now this module allows to manage Doxygen settings from `CMakeLists.txt` and forget about `Doxyfile`s. Also it provides a helper function to add a target to generate documentation: `doxygen_add_docs`. Implement code review notes: - Introduce `COMPONENTS` to find: `dot`, `mscgen` and `dia`; - Deprecate variables `DOXYGEN_SKIP_DOT`, `DOXYGEN_EXECUTABLE`, `DOXYGEN_DOT_EXECUTABLE`, `DOXYGEN_DOT_FOUND` in favour of `doxygen_add_docs ` usage instead; - Properly handle paths to found tools in Windows; - Prevent adding a custom target if Doxygen was not really found; - Introduce exported (executable) targets for found components. Co-Author: Craig Scott <craig.scott@crascit.com>
* Simplify CMake per-source license noticesBrad King2016-09-271-13/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* FindDoxygen: Deprecate DOXYGEN_DOT_PATHBrad King2014-05-271-3/+11
| | | | | | | While at it, do not cache the value since it should always be computed directly from DOXYGEN_DOT_EXECUTABLE. Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
* FindDoxygen: Improve search for Graphviz "dot" on WindowsBrad King2014-05-271-2/+8
| | | | | | | As of Graphviz 2.31, their installer provides no PATH or registry modifications. Glob possible install paths instead. Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-9/+22
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-2/+2
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-15/+15
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-8/+8
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* FindDoxygen: add DOXYGEN_VERSION variableYury G. Kudryashov2012-01-021-1/+6
| | | | | Make it possible to write find_package(DOXYGEN X.Y.Z)
* Modules: Include builtin FindPackageHandleStandardArgs directlyBrad King2011-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The FindPackageHandleStandardArgs module was originally created outside of CMake. It was added for CMake 2.6.0 by commit e118a627 (add a macro FIND_PACKAGE_HANDLE_STANDARD_ARGS..., 2007-07-18). However, it also proliferated into a number of other projects that at the time required only CMake 2.4 and thus could not depend on CMake to provide the module. CMake's own find modules started using the module in commit b5f656e0 (use the new FIND_PACKAGE_HANDLE_STANDARD_ARGS in some of the FindXXX modules..., 2007-07-18). Then commit d358cf5c (add 2nd, more powerful mode to find_package_handle_standard_args, 2010-07-29) added a new feature to the interface of the module that was fully optional and backward compatible with all existing users of the module. Later commit 5f183caa (FindZLIB: use the FPHSA version mode, 2010-08-04) and others shortly thereafter started using the new interface in CMake's own find modules. This change was also backward compatible because it was only an implementation detail within each module. Unforutnately these changes introduced a problem for projects that still have an old copy of FindPackageHandleStandardArgs in CMAKE_MODULE_PATH. When any such project uses one of CMake's builtin find modules the line include(FindPackageHandleStandardArgs) loads the copy from the project which does not have the new interface! Then the including find module tries to use the new interface with the old module and fails. Whether this breakage can be considered a backward incompatible change in CMake is debatable. The situation is analagous to copying a standard library header from one version of a compiler into a project and then observing problems when the next version of the compiler reports errors in its other headers that depend on its new version of the original header. Nevertheless it is a change to CMake that causes problems for projects that worked with previous versions. This problem was discovered during the 2.8.3 release candidate cycle. It is an instance of a more general problem with projects that provide their own versions of CMake modules when other CMake modules depend on them. At the time we resolved this instance of the problem with commit b0118402 (Use absolute path to FindPackageHandleStandardArgs.cmake everywhere, 2010-09-28) for the 2.8.3 release. In order to address the more general problem we introduced policy CMP0017 in commit db44848f (Prefer files from CMAKE_ROOT when including from CMAKE_ROOT, 2010-11-17). That change was followed by commit ce28737c (Remove usage of CMAKE_CURRENT_LIST_DIR now that we have CMP0017, 2010-12-20) which reverted the original workaround in favor of using the policy. However, existing project releases do not set the policy behavior to NEW and therefore still exhibit the problem. We introduced in commit a364daf1 (Allow users to specify defaults for unset policies, 2011-01-03) an option for users to build existing projects by adding -DCMAKE_POLICY_DEFAULT_CMP0017=NEW to the command line. Unfortunately this solution still does not allow such projects to build out of the box, and there is no good way to suggest the use of the new option. The only remaining solution to keep existing projects that exhibit this problem building is to restore the change originally made in commit b0118402 (Use absolute path to FindPackageHandleStandardArgs.cmake everywhere, 2010-09-28). This also avoids policy CMP0017 warnings for this particular instance of the problem the policy addresses.
* Remove usage of CMAKE_CURRENT_LIST_DIR now that we have CMP0017Alex Neundorf2011-01-041-1/+1
| | | | | | | | This puts the new search behaviour for included files in action, i.e. now when a file from Modules/ include()s another file, it also gets the one from Modules/ included, i.e. the one it expects. Alex
* Use absolute path to FindPackageHandleStandardArgs.cmake everywhereAlex Neundorf2010-09-281-1/+1
| | | | | | | This is to avoid getting an (older) copy of FPHSA.cmake which is e.g. installed with KDE 4.5.0 and 4.5.1. Alex
* Modules: Fix spelling 'To distributed' -> 'To distribute'Todd Gamblin2010-08-091-1/+1
|
* Convert CMake find-modules to BSD LicenseBrad King2009-09-281-0/+13
| | | | | | | This adds copyright/license notification blocks CMake's find-modules. Many of the modules had no notices at all. Some had notices referring to the BSD license already. This commit normalizes existing notices and adds missing notices.
* BUG: Fix other modules not respecting QUIET and REQUIREDPhilip Lowman2009-01-301-4/+2
|
* STYLE: Reworded some of the OS-X code commentsPhilip Lowman2009-01-281-22/+23
|
* BUG: Fixes Issue #8054 and more. DOXYGEN_DOT_FOUND now exists, errantPhilip Lowman2009-01-191-73/+96
| | | | | | | mark_as_advanced variables removed, documentation cleaned up and OSX stuff isolated to it's own section, support added for DOXYGEN_SKIP_DOT, support added to call FindPackageHandleStandardArgs to avoid output on every CMake run.
* ENH: New location to look for "dot"David Cole2008-12-261-1/+3
|
* ENH: fix for backwards compatibilityBill Hoffman2006-12-041-3/+3
|
* BUG: fix for bug 4102Bill Hoffman2006-12-041-0/+7
|
* ENH: fix more doxygen issuesBill Hoffman2006-10-241-14/+5
|
* ENH: put in backwards compatibility for older cmakeBill Hoffman2006-10-231-6/+14
|
* BUG: fix for bug# 3310Bill Hoffman2006-10-161-0/+17
|
* ENH: remove paths that cmake already looks atBill Hoffman2006-10-041-6/+0
|
* BUG: fix for bug#3520 - better find doxygenBill Hoffman2006-10-041-13/+57
|
* ENH: use program files env for searchingBill Hoffman2006-02-281-0/+1
|
* ENH: add documentation support for modulesBill Hoffman2005-12-141-4/+1
|