|
continuous-integration/drone/push Build is passing
Details
|
||
|---|---|---|
| .github/workflows | ||
| capi | ||
| cmake | ||
| debian | ||
| doc | ||
| include | ||
| macros | ||
| src | ||
| swig | ||
| tests | ||
| tools | ||
| .drone-1.0.yml | ||
| .drone.yml | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .travis.yml | ||
| .vimrc | ||
| AUTHORS | ||
| CMakeLists.txt | ||
| COPYING | ||
| HOWTO_RELEASE | ||
| INSTALL | ||
| Makefile.am | ||
| NEWS | ||
| README.md | ||
| TODO | ||
| acsite.m4 | ||
| appveyor.yml | ||
| autogen.bat | ||
| autogen.sh | ||
| configure.ac | ||
| makefile.vc | ||
| nmake.opt | ||
README.md
GEOS -- Geometry Engine, Open Source
Project homepage: https://libgeos.org/
Build Status
| CI | Status |
|---|---|
| GitHub | |
| Azure | |
| GitLab | |
| Debbie | |
| Winnie | |
| Dronie |
Building, Testing, Installing
Prerequisites
Building GEOS requires a C++11 compiler
Unix
Using Autotools:
./autogen.sh # in ${srcdir}, if obtained from SVN or GIT
(mkdir obj && cd obj && ../configure)
Using CMake:
(mkdir build && cd build && cmake ..)
Either Autotools or CMake
make
make check
make install # (as root, assuming PREFIX is not writable by the build user)
On a GNU/Linux system, if installed in a system prefix:
ldconfig # as root
Microsoft Windows
If you use Microsoft Visual C++ (7.1 or later) compiler, you can build
GEOS using NMAKE program and provided makefile.vc files.
If you are building from SVN or GIT checkout, first run: autogen.bat
Then:
nmake /f makefile.vc MSVC_VER=1400
where 1400 is version number of Visual C++ compiler, here Visual C++ 8.0 from Visual Studio 2005 (supported versions are 1300, 1310, 1400, 1500, 1600, 1700, 1800 and 1900). The bootstrap.bat step is required to generate a couple of header files.
In order to build debug configuration of GEOS, additional flag DEBUG=1
is required:
nmake /f makefile.vc MSVC_VER=1400 DEBUG=1
Client applications
Using the C interface (recommended)
GEOS promises long term stability of C API
The C library uses the C++ interface, but the C library follows normal ABI-change-sensitive versioning, so programs that link only against the C library should work without relinking when GEOS is upgraded.
To compile programs against the C lib (recommended):
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
#include <geos_c.h>
Example usage:
capi/geostest.c contains basic usage examples.
Using the C++ interface (no stability promise)
Developers who decide to use the C++ interface should be aware GEOS does not promise API or ABI stability of C++ API between releases. Moreover C++ API/ABI breaking changes may not even be announced or include in the NEWS file
The C++ library name will change on every minor release because it is too hard to know if there have been ABI changes.
To compile programs against the C++ lib:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
#include <geos.h>
Basic usage examples can be found in doc/example.cpp.
Scripting language bindings
Ruby bindings are fully supported. To build, use the --enable-ruby option
when configuring:
./configure ... --enable-ruby
Since version 3.7.0 PHP bindings are not included in the core library anymore but available as a separate project:
https://git.osgeo.org/gogs/geos/php-geos
Since version 3.0, the Python bindings are unsupported. Recommended options:
- Become or recruit a new maintainer.
- Use Shapely with Python versions 2.4 or greater.
- Simply call functions from
libgeos_cvia Python ctypes.
Documentation
To build Doxygen documentation:
cd doc
make doxygen-html