Files
PROJ/docs/source/install.rst
T

512 lines
15 KiB
ReStructuredText

.. _install:
================================================================================
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.
Installation from package management systems
################################################################################
Cross platform
--------------------------------------------------------------------------------
PROJ is also available via cross platform package managers.
Conda
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The conda package manager includes several PROJ packages. We recommend installing
from the ``conda-forge`` channel::
conda install -c conda-forge proj
Using ``conda`` you can also install the PROJ data package. Here's how to install
the `proj-data` package::
conda install -c conda-forge proj-data
Available is also the legacy packages ``proj-datumgrid-europe``,
``proj-datumgrid-north-america``, ``proj-datumgrid-oceania`` and
``proj-datumgrid-world``.
.. tip::
Read more about the various datumgrid packages available :ref:`here<datumgrid>`.
Docker
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A `Docker`_ image with just PROJ binaries and a full compliment of grid shift
files is available on `DockerHub`_. Get the package with::
docker pull osgeo/proj
.. _`Docker`: https://www.docker.com/
.. _`DockerHub`: https://hub.docker.com/r/osgeo/proj/
Windows
--------------------------------------------------------------------------------
The simplest way to install PROJ on Windows is to use the `OSGeo4W`_ software
distribution. OSGeo4W provides easy access to many popular open source geospatial
software packages. After installation you can use PROJ from the OSGeo4W shell.
To install PROJ do the following:
.. note::
If you have already installed software via OSGeo4W on your computer, or if
you have already installed QGIS on your computer, it is likely that PROJ is
already installed. Type "OSGeo4W Shell" in your start menu and check whether
that gives a match.
1. Download the `64 bit`_ installer.
2. Run the OSGeo4W setup program.
3. Select "Advanced Install" and press Next.
4. Select "Install from Internet" and press Next.
5. Select a installation directory. The default suggestion is fine in most cases. Press Next.
6. Select "Local package directory". The default suggestion is fine in most cases. Press Next.
7. Select "Direct connection" and press Next.
8. Choose the download.osgeo.org server and press Next.
9. Find "proj" under "Commandline_Utilities" and click the package in the "New" column until the version you want to install appears.
10. Press next to install PROJ.
You should now have a "OSGeo" menu in your start menu. Within that menu you can
find the "OSGeo4W Shell" where you have access to all the OSGeo4W applications,
including proj.
For those who are more inclined to the command line, steps 2--10 above can be
accomplished by executing the following command::
C:\temp\osgeo4w-setup.exe -q -k -r -A -s https://download.osgeo.org/osgeo4w/v2/ -P proj
.. _`OSGeo4W`: https://trac.osgeo.org/osgeo4w/
.. _`64 bit`: https://download.osgeo.org/osgeo4w/v2/osgeo4w-setup.exe
Linux
--------------------------------------------------------------------------------
How to install PROJ on Linux depends on which distribution you are using. Below
is a few examples for some of the more common Linux distributions:
Debian
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
On Debian and similar systems (e.g. Ubuntu) the APT package manager is used::
sudo apt-get install proj-bin
Fedora
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
On Fedora the ``dnf`` package manager is used::
sudo dnf install proj
Red Hat
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
On Red Hat based system packages are installed with ``yum``::
sudo yum install proj
Mac OS X
--------------------------------------------------------------------------------
On OS X PROJ can be installed via the Homebrew package manager::
brew install proj
PROJ is also available from the MacPorts system::
sudo ports install proj
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<current_release>`.
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.
Build requirements
--------------------------------------------------------------------------------
- C99 compiler
- C++11 compiler
- CMake >= 3.9
- SQLite3 >= 3.11: headers and library for target architecture, and sqlite3 executable for build architecture.
- libtiff >= 4.0 (optional but recommended)
- curl >= 7.29.0 (optional but recommended)
Build steps
--------------------------------------------------------------------------------
With the CMake build system you can compile and install PROJ on more or less any
platform. After unpacking the source distribution archive step into the source-
tree::
cd proj-{PROJVERSION}
Create a build directory and step into it::
mkdir build
cd build
From the build directory you can now configure CMake, build and install the binaries::
cmake ..
cmake --build .
cmake --build . --target install
On Windows, one may need to specify generator::
cmake -G "Visual Studio 15 2017" ..
If the SQLite3 dependency is installed in a custom location, specify the
paths to the include directory and the library::
cmake -DSQLITE3_INCLUDE_DIR=/opt/SQLite/include -DSQLITE3_LIBRARY=/opt/SQLite/lib/libsqlite3.so ..
Alternatively, the custom prefix for SQLite3 can be specified::
cmake -DCMAKE_PREFIX_PATH=/opt/SQLite ..
Tests are run with::
ctest
With a successful install of PROJ we can now install data files using the
:program:`projsync` utility::
projsync --system-directory
which will download all resource files currently available for PROJ. If less than
the entire collection of resource files is needed the call to :program:`projsync`
can be modified to suit the users needs. See :ref:`projsync` for more options.
.. note::
The use of :program:`projsync` requires that network support is enabled (the
default option). If the resource files are not installed using
:program:`projsync` PROJ will attempt to fetch them automatically when a
transformation needs a specific data file. This requires that
:envvar:`PROJ_NETWORK` is set to ``ON``.
As an alternative on systems where network access is disabled, the
:ref:`proj-data <datumgrid>`
package can be downloaded and its content decompressed into one of the
directories where PROJ looks for :ref:`resources <resource_files>`
Starting with PROJ 9.2, a ``uninstall`` target is available to remove files
installed by the ``install`` target::
cmake --build . --target uninstall
CMake configure options
--------------------------------------------------------------------------------
Options to configure a CMake are provided using ``-D<var>=<value>``.
All cached entries can be viewed using ``cmake -LAH`` from a build directory.
.. option:: BUILD_APPS=ON
Build PROJ applications. Default is ON. Control the default value for
BUILD_CCT, BUILD_CS2CS, BUILD_GEOD, BUILD_GIE, BUILD_PROJ, BUILD_PROJINFO
and BUILD_PROJSYNC.
Note that changing its value after having configured once will not change
the value of the individual BUILD_CCT, ... options.
.. versionchanged:: 8.2
.. option:: BUILD_CCT=ON
Build :ref:`cct`, default is the value of BUILD_APPS.
.. option:: BUILD_CS2CS=ON
Build :ref:`cs2cs`,default is the value of BUILD_APPS.
.. option:: BUILD_GEOD=ON
Build :ref:`geod`, default is the value of BUILD_APPS.
.. option:: BUILD_GIE=ON
Build :ref:`gie`, default is the value of BUILD_APPS.
.. option:: BUILD_PROJ=ON
Build :ref:`proj`, default is the value of BUILD_APPS.
.. option:: BUILD_PROJINFO=ON
Build :ref:`projinfo`, default is the value of BUILD_APPS.
.. option:: BUILD_PROJSYNC=ON
Build :ref:`projsync`, default is the value of BUILD_APPS.
.. option:: BUILD_SHARED_LIBS
Build PROJ library shared. Default is ON. See also the CMake
documentation for `BUILD_SHARED_LIBS
<https://cmake.org/cmake/help/v3.9/variable/BUILD_SHARED_LIBS.html>`_.
.. versionchanged:: 7.0
Renamed from ``BUILD_LIBPROJ_SHARED``
.. note:: before PROJ 9.0, the default was OFF for Windows builds.
.. option:: BUILD_TESTING=ON
CTest option to build the testing tree, which also downloads and installs
Googletest. Default is ON, but can be turned OFF if tests are not required.
.. versionchanged:: 7.0
Renamed from ``PROJ_TESTS``
.. option:: CMAKE_BUILD_TYPE
Choose the type of build, options are: None (default), Debug, Release,
RelWithDebInfo, or MinSizeRel. See also the CMake documentation for
`CMAKE_BUILD_TYPE
<https://cmake.org/cmake/help/v3.9/variable/CMAKE_BUILD_TYPE.html>`_.
.. note::
A default build is not optimized without specifying
``-DCMAKE_BUILD_TYPE=Release`` (or similar) during configuration,
or by specifying ``--config Release`` with CMake
multi-configuration build tools (see example below).
.. option:: CMAKE_C_COMPILER
C compiler. Ignored for some generators, such as Visual Studio.
.. option:: CMAKE_C_FLAGS
Flags used by the C compiler during all build types. This is
initialized by the :envvar:`CFLAGS` environment variable.
.. option:: CMAKE_CXX_COMPILER
C++ compiler. Ignored for some generators, such as Visual Studio.
.. option:: CMAKE_CXX_FLAGS
Flags used by the C++ compiler during all build types. This is
initialized by the :envvar:`CXXFLAGS` environment variable.
.. option:: CMAKE_INSTALL_PREFIX
Default for Windows is based on the environment variable
:envvar:`OSGEO4W_ROOT` (if set), otherwise is ``c:/OSGeo4W``.
Default for Unix-like is ``/usr/local/``.
.. option:: CMAKE_UNITY_BUILD=OFF
.. versionadded:: 9.4
Default is OFF. This can be set to ON to build PROJ using the
https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html feature.
This helps speeding PROJ build times. This feature is still considered
experimental for now, and could hide subtle bugs (we are not aware of
any at writing time though). We don't recommend it for mission critical
builds.
.. option:: ENABLE_IPO=OFF
Build library using the compiler's `interprocedural optimization
<https://en.wikipedia.org/wiki/Interprocedural_optimization>`_
(IPO), if available, default OFF.
.. versionchanged:: 7.0
Renamed from ``ENABLE_LTO``.
.. option:: EXE_SQLITE3
Path to an ``sqlite3`` or ``sqlite3.exe`` executable.
.. option:: SQLITE3_INCLUDE_DIR
Path to an include directory with the ``sqlite3.h`` header file.
.. option:: SQLITE3_LIBRARY
Path to a shared or static library file, such as ``sqlite3.dll``,
``libsqlite3.so``, ``sqlite3.lib`` or other name.
.. option:: ENABLE_CURL=ON
Enable CURL support, default ON.
.. option:: CURL_INCLUDE_DIR
Path to an include directory with the ``curl`` directory.
.. option:: CURL_LIBRARY
Path to a shared or static library file, such as ``libcurl.dll``,
``libcurl.so``, ``libcurl.lib``, or other name.
.. option:: ENABLE_TIFF=ON
Enable TIFF support to use PROJ-data resource files, default ON.
.. option:: TIFF_INCLUDE_DIR
Path to an include directory with the ``tiff.h`` header file.
.. option:: TIFF_LIBRARY_RELEASE
Path to a shared or static library file, such as ``tiff.dll``,
``libtiff.so``, ``tiff.lib``, or other name. A similar variable
``TIFF_LIBRARY_DEBUG`` can also be specified to a similar library for
building Debug releases.
.. option:: USE_CCACHE=OFF
Configure CMake to use `ccache <https://ccache.dev/>`_ (or
`clcache <https://github.com/frerich/clcache>`_ for MSVC)
to build C/C++ objects.
.. option:: PROJ_DB_CACHE_DIR
Path to an existing directory used to cache :file:`proj.db` to speed-up
subsequent builds without modifications to source SQL files.
Building on Windows with vcpkg and Visual Studio 2017 or 2019
--------------------------------------------------------------------------------
This method is the preferred one to generate Debug and Release builds.
Install git
+++++++++++
Install `git <https://git-scm.com/download/win>`_
Install Vcpkg
+++++++++++++
Assuming there is a c:\\dev directory
::
cd c:\dev
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
Install PROJ dependencies
+++++++++++++++++++++++++
::
vcpkg install sqlite3[core,tool] tiff curl --triplet=x86-windows
vcpkg install sqlite3[core,tool] tiff curl --triplet=x64-windows
.. note:: The tiff and curl dependencies are only needed since PROJ 7.0
Checkout PROJ sources
+++++++++++++++++++++
::
cd c:\dev
git clone https://github.com/OSGeo/PROJ.git
Build PROJ
++++++++++
::
cd c:\dev\PROJ
mkdir build_vs2019
cd build_vs2019
cmake -DCMAKE_TOOLCHAIN_FILE=C:\dev\vcpkg\scripts\buildsystems\vcpkg.cmake ..
cmake --build . --config Debug -j 8
Run PROJ tests
++++++++++++++
::
cd c:\dev\PROJ\build_vs2019
ctest -V --build-config Debug
Building on Windows with Conda dependencies and Visual Studio 2017 or 2019
--------------------------------------------------------------------------------
Variant of the above method but using Conda for SQLite3, TIFF and CURL dependencies.
It is less appropriate for Debug builds of PROJ than the method based on vcpkg.
Install git
+++++++++++
Install `git <https://git-scm.com/download/win>`_
Install miniconda
+++++++++++++++++
Install `miniconda <https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe>`_
Install PROJ dependencies
+++++++++++++++++++++++++
Start a Conda enabled console and assuming there is a c:\\dev directory
::
cd c:\dev
conda create --name proj
conda activate proj
conda install sqlite libtiff curl cmake
.. note:: The libtiff and curl dependencies are only needed since PROJ 7.0
Checkout PROJ sources
+++++++++++++++++++++
::
cd c:\dev
git clone https://github.com/OSGeo/PROJ.git
Build PROJ
++++++++++
From a Conda enabled console
::
conda activate proj
cd c:\dev\PROJ
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
cmake -S . -B _build.vs2019 -DCMAKE_LIBRARY_PATH:FILEPATH="%CONDA_PREFIX%/Library/lib" -DCMAKE_INCLUDE_PATH:FILEPATH="%CONDA_PREFIX%/Library/include"
cmake --build _build.vs2019 --config Release -j 8
Run PROJ tests
++++++++++++++
::
cd c:\dev\PROJ
cd _build.vs2019
ctest -V --build-config Release