Can speed up cold builds by 30%
It is a bit experimental for now, so it isn't enabled by default, because:
- it currently causes linking issues with MSVC
- CLang Static Analyzer analysis has false positives with it
- Strange issue seen in the android CI configuration with a
fatal error: file '/home/runner/work/gdal/gdal/build_android_cmake/CMakeFiles/gdal_priv_header.dir/cmake_pch.h' has been modified since the precompiled header '/home/runner/work/gdal/gdal/build_android_cmake/CMakeFiles/gdal_priv_header.dir/cmake_pch.h.pch' was built: mtime changed (https://github.com/rouault/gdal/actions/runs/12113235664/job/33767887119)
Fixes#5484
Updated dev_documentation.rst:
```rst
Building documentation
Documentation can be generated with Makefile targets, from the ``doc`` subdirectory
of the GDAL source repository (only on Unix systems).
The following targets are available:
* ``html``: build HTML documentation into the ``doc/build/html`` directory, where
they can be viewed using a web browser.
* ``man``: build MAN pages into the ``doc/build/man`` directory.
* ``latexpdf``: build PDF documentation into the ``doc/build/pdf`` directory
* ``doxygen``: regenerate API Doxygen XML and HTML output, that is used by the
``html`` target. Doxygen content is not automatically rebuilt when source files
are modified, hence this target must be explicitly run to refresh it.
* ``doxygen_check_warnings``: same as ``doxygen``, but errors out when Doxygen
emits a warning (the ``doxygen`` target is tolerant to Doxygen warnings).
This can be useful to reproduce one of the continuous integration checks that
verifies that there are no Doxygen warnings.
Requires Doxygen >= 1.9.3 to be warning free.
* ``clean``: clean the ``doc/build`` directory.
It is also possible to run those targets as CMake targets. In that case, the
output directory will be the ``doc/build`` subdirectory of the CMake
build directory. To only clean the documentation, the ``clean_doc`` target can
be invoked.
Note: those CMake targets are only available if the CMake BUILD_DOCS=ON variable
is set (it is set by default if build preconditions are met, that is if Doxygen,
Sphinx and make are available)
```