GEOS / Usage / Download and Build Edit this page

Download and Build

Download Project

Release Release Date First Release Final Release Download Link Changes
3.11.0 2022/07/01 2022/07/01 2026/07/01 geos-3.11.0.tar.bz2 Changes
3.10.3 2022/06/03 2021/10/20 2025/10/20 geos-3.10.3.tar.bz2 Changes
3.9.3 2022/06/02 2020/12/09 2024/12/09 geos-3.9.3.tar.bz2 Changes
3.8.3 2022/06/02 2019/10/10 2023/10/10 geos-3.8.3.tar.bz2 Changes
3.7.5 2022/06/08 2018/09/10 2023/03/31 geos-3.7.5.tar.bz2 Changes
3.6.5 2020/12/11 2016/10/25 2022/10/25 geos-3.6.5.tar.bz2 Changes
3.5.2 EOL 2019/10/04 2015/08/16 2019/10/04 geos-3.5.2.tar.bz2 Changes

If you see EOL next to a released version, it means no security or patch updates will be added to that minor and you should upgrade to a higher release. Refer to our End-Of-Life (EOL) Policy for details. Older releases prior to the ones listed above, are all EOL’d.

Old releases can be downloaded from

All future Final Release dates are subject to change.

Build From Source

Build Requirements

  • CMake 3.13 or later.
  • C++11 compiler. We regularly test GCC, Clang and Microsoft Visual C++.
  • Doxygen to build the API documentation.


Builds with CMake are done “outside the tree” in a build directory either in the source tree or next to it. The following shows building into a directory in the source tree.

# Unpack and setup build directory
tar xvfj geos-3.10.3.tar.bz2
cd geos-3.10.3
mkdir _build
cd _build
# Set up the build
cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
# Run the build, test, install
make install

Build Options

The GEOS build can be customized using build options. Options are specified via cmake variables. They are specified on the cmake cmdline as -DVAR=VALUE.

NOTE: Running cmake with no variables does NOT clear current variable settings. They must be set explicitly on the cmdline or interactively using ccmake ... To revert to the defaults, clear the build directory contents using rm -rf *.
Option Default Note
CMAKE_BUILD_TYPE Release Use Debug to build with debug flags and optimizations off. Use Release for packaging and production installs. Use RelWithDebInfo for optimized build with debug symbols.
CMAKE_INSTALL_PREFIX /usr/local Set to install root. Librarys end up in ./libs headers in ./include
BUILD_DOCUMENTATION ON Attempt to find doxygen executable and build API docs
BUILD_SHARED_LIBS ON Build dynamically linkable libraries.


It is possible to run ctest directly. This gives access to ctest command line options (see ctest --help for a listing).

ctest --verbose

A list of GEOS test suites is obtained by running ctest --show-only:

$ ctest --show-only
# Test project /home/dan/dev/libgeos/cmake-build-debug
#  Test #1: test_geos_unit
#  Test #2: test_xmltester
#  Test #3: test_bug234
#  Test #4: test_sweep_line_speed

A subset of test suites can be run using a regular expression (and in this case, running 4 jobs in parallel):

$ ctest --tests-regex test_ --parallel 4