From 5d7ba63e420f21c3feed038f538ec6498c61fe8f Mon Sep 17 00:00:00 2001 From: Greg Troxel Date: Thu, 21 May 2026 19:53:57 -0400 Subject: [PATCH 1/3] install.rst: Say that the file covers building from source It did, but the intro said it only addressed using package. Note that the source build sections variously describe release tarballs and git, and hint that either is ok. Co-authored-by: Kristian Evers --- docs/source/install.rst | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 73eb5a40f0..b461efdbe2 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -4,10 +4,19 @@ Installation ================================================================================ -These pages describe how to install PROJ on your computer without compiling it -yourself. Below are guides for installing on Windows, Linux and Mac OS X. This -is a good place to get started if this is your first time using PROJ. More -advanced users may want to compile the software themselves. +These pages describe how to install PROJ on your computer, covering a +variety of operating systems. + +There is a section for using package management systems. If PROJ is +available for a package management system you already use, and you +wish to run the release of PROJ offered by that system (usually that's +fine), this is is the easiest path. + +There is a second section for building from source. This section can +be followed if there is no binary package available for your +operating and CPU combination or if you wish to install a different +version, including the tip of master in git, or pending fixes. It is +of course also useful to those creating packages. Installation from package management systems ################################################################################ @@ -130,6 +139,10 @@ Compilation and installation from source code The classic way of installing PROJ is via the source code distribution. The most recent version is available from the :ref:`download page`. +Alternatively, one can also check out the master branch or any other revision from GitHub. + +Note that some sections below presume an unpacked release tarball, and +some say to use a git checkout. The following guides show how to compile and install the software using CMake. From 41a76fdb16ed403a7eb32dde428e50d376797d81 Mon Sep 17 00:00:00 2001 From: Greg Troxel Date: Thu, 21 May 2026 19:56:51 -0400 Subject: [PATCH 2/3] install: Shorten autotools history 9.0 was over 4 years ago. The previous use of autotools is now only of historical interest. Simply say that the build system is CMake, with a brief historical comment. --- docs/source/install.rst | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index b461efdbe2..8194d7ec89 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -144,12 +144,8 @@ Alternatively, one can also check out the master branch or any other revision fr Note that some sections below presume an unpacked release tarball, and some say to use a git checkout. -The following guides show how to compile and install the software using CMake. - - .. note:: - - Support for Autotools was maintained until PROJ 8.2 (see :ref:`RFC7`). - PROJ 9.0 and later releases only support builds using CMake. +As of PROJ 9.0, the only build system is CMake. (The last release +with Autotools was 8.2.) Requirements From de15ed8496d0776adca022677def4ff4d68631b3 Mon Sep 17 00:00:00 2001 From: Greg Troxel Date: Thu, 21 May 2026 20:13:11 -0400 Subject: [PATCH 3/3] install: Explain dependencies more Point out vendored code and build-time downloading that most packagers will want to avoid. Explain the test program compilation plan more precisely. Note that an outdated vendored version (from 2020-08) of nlohmann/json may be used and how to avoid it. --- docs/source/install.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 8194d7ec89..8266498d22 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -147,6 +147,9 @@ some say to use a git checkout. As of PROJ 9.0, the only build system is CMake. (The last release with Autotools was 8.2.) +Packagers and others with similar policy constraints should note that +an outdated vendored copy of nlohmann/json may be used and that +GoogleTest may be downloaded at build time (details below). Requirements -------------------------------------------------------------------------------- @@ -160,7 +163,7 @@ Build requirements - SQLite3 >= 3.11: headers and library for target architecture, and sqlite3 executable for build architecture - libtiff >= 4.0 (optional but recommended to enable reading of grid formats based on GeoTIFF. Only basic TIFF support is required; optional features like WebP or ZStd are not needed.) - curl >= 7.29.0 (optional but recommended to support automatic downloading of remote grid files during runtime, allowing PROJ to fetch required transformation data on demand.) -- JSON for Modern C++ (nlohmann/json) >= 3.7.0 +- JSON for Modern C++ (nlohmann/json) >= 3.7.0 (a vendored 3.9.1 will be used if not found; use `-DNLOHMANN_JSON_ORIGIN=EXTERNAL` to prevent this) .. _test_requirements: @@ -168,7 +171,7 @@ Build requirements Test requirements +++++++++++++++++ -These are only required if testing is built (see :option:`BUILD_TESTING`, default ON) +If :option:`BUILD_TESTING` is ON (the default), test programs will be be compiled at build time, and the following additional dependencies are required: - GoogleTest (GTest) >= 1.8.1; if not found and :option:`TESTING_USE_NETWORK` is ON, then version 1.15.2 is fetched from GitHub and locally installed - Python >= 3.7