[geos-commits] [SCM] GEOS branch master updated. 6820ce966014f59880f71fa01dda6ddf64e4beb1
git at osgeo.org
git at osgeo.org
Wed May 22 06:10:24 PDT 2019
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".
The branch, master has been updated
via 6820ce966014f59880f71fa01dda6ddf64e4beb1 (commit)
via 5b889fad7344928da223ed08169d64de1fda6f18 (commit)
via 34e54992be3147a9e7aa8758fcd32308bc97ab9f (commit)
from f552ee8bdd85b5d2b422879d5a81093591d7bb0e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6820ce966014f59880f71fa01dda6ddf64e4beb1
Merge: f552ee8 5b889fa
Author: Daniel Baston <dbaston at gmail.com>
Date: Wed May 22 09:10:07 2019 -0400
Merge branch 'readme-updates'
commit 5b889fad7344928da223ed08169d64de1fda6f18
Author: Daniel Baston <dbaston at gmail.com>
Date: Tue May 21 15:23:41 2019 -0400
Update Visual Studio instructions in README.md [ci skip]
NMake Makefiles are no longer supported.
diff --git a/README.md b/README.md
index 5f843ab..e9a0364 100644
--- a/README.md
+++ b/README.md
@@ -62,24 +62,8 @@ check`.
### 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
-
+GEOS can be built with Microsoft Visual C++ by opening the `CMakeLists.txt` in
+the project root using `File > Open > CMake`.
## Client applications
commit 34e54992be3147a9e7aa8758fcd32308bc97ab9f
Author: Daniel Baston <dbaston at gmail.com>
Date: Tue May 21 09:58:58 2019 -0400
Some updates to README [ci skip]
diff --git a/README.md b/README.md
index 8f6d012..5f843ab 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,14 @@
GEOS -- Geometry Engine, Open Source
====================================
-Project homepage: http://geos.osgeo.org/
+GEOS is a C++11 library for performing operations on two-dimensional vector
+geometries. It is primarily a port of the [JTS Topology
+Suite](https://github.com/locationtech/jts) Java library. It provides many of
+the algorithms used by [PostGIS](http://www.postgis.net/), the
+[Shapely](https://pypi.org/project/Shapely/) package for Python, the
+[sf](https://github.com/r-spatial/sf) package for R, and others.
+
+More information is available the [project homepage](https://trac.osgeo.org/geos).
## Build status
@@ -11,35 +18,47 @@ Project homepage: http://geos.osgeo.org/
| 3.7 | [![debbie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Branch_3.7)](https://debbie.postgis.net/view/GEOS/job/GEOS_Branch_3.7/) | [![winnie](https://winnie.postgis.net:444/view/GEOS/job/GEOS_Branch_3.7/badge/icon)](https://winnie.postgis.net:444/view/GEOS/job/GEOS_Branch_3.7/) | [![dronie](https://drone.osgeo.org/api/badges/geos/geos/status.svg?branch=3.7)](https://drone.osgeo.org/geos/geos?branch=3.7) | [![travis](https://travis-ci.com/libgeos/geos.svg?branch=3.7)](https://travis-ci.com/libgeos/geos?branch=3.7) | [![gitlab-ci](https://gitlab.com/geos/libgeos/badges/svn-3.7/build.svg)](https://gitlab.com/geos/libgeos/commits/3.7) | [![appveyor](https://ci.appveyor.com/api/projects/status/62aplwst722b89au/branch/3.7?svg=true)](https://ci.appveyor.com/project/dbaston/geos/branch/3.7) ||
| 3.6 | [![debbie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Branch_3.6)](https://debbie.postgis.net/view/GEOS/job/GEOS_Branch_3.6/) | [![winnie](https://winnie.postgis.net:444/view/GEOS/job/GEOS_Branch_3.6/badge/icon)](https://winnie.postgis.net:444/view/GEOS/job/GEOS_Branch_3.6/) | [![dronie](https://drone.osgeo.org/api/badges/geos/geos/status.svg?branch=svn-3.6)](https://drone.osgeo.org/geos/geos?branch=svn-3.6) | [![travis](https://travis-ci.com/libgeos/geos.svg?branch=svn-3.6)](https://travis-ci.com/libgeos/geos?branch=svn-3.6) | [![gitlab-ci](https://gitlab.com/geos/libgeos/badges/svn-3.6/build.svg)](https://gitlab.com/geos/libgeos/commits/svn-3.6) | [![appveyor](https://ci.appveyor.com/api/projects/status/62aplwst722b89au/branch/svn-3.6?svg=true)](https://ci.appveyor.com/project/dbaston/geos/branch/svn-3.6) |
-More on: https://trac.osgeo.org/geos#BuildandInstall
-
-## Building, testing, installing
+## Building GEOS From Source
### Prerequisites
-Building GEOS requires a C++11 compiler
+GEOS has no external library dependencies and can be built with any C++11
+compiler.
### Unix
-#### Gen Buildchain
+GEOS can be built on Unix systems using either the autotools or CMake build
+systems.
+
+#### Using Autotools:
+
+When building GEOS using autotools, a `configure` script must first be generated
+using the `autogen.sh` file included in the root of the repository:
+
+ ./autogen.sh
-##### Using Autotools:
+An out-of-tree build can then be initiated by creating a subdirectory and
+running the generated `configure` script from that subdirectory:
- ./autogen.sh # in ${srcdir}, if obtained from SVN or GIT
- (mkdir obj && cd obj && ../configure)
+ mkdir obj && cd obj && ../configure
-##### Using CMake:
+Once the `configure` script has run, GEOS can be built by running `make` and
+installed by running `make install`. The test suite can be run using `make
+check`.
- (mkdir build && cd build && cmake ..)
+#### Using CMake:
-#### Build (both Autotools and CMake)
+To build `GEOS` using CMake, create a build directory and run the `cmake` command
+from that location:
- make
- make check
- make install # (as root, assuming PREFIX is not writable by the build user)
+ mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release ..
- On a GNU/Linux system, if installed in a system prefix:
- ldconfig # as root
+Setting `CMAKE_BUILD_TYPE` to `Release` is necessary to enable compiler
+optimizations.
+
+Once the `cmake` tool has run, GEOS can be built by running `make` and
+installed by running `make install`. The test suite can be run using `make
+check`.
### Microsoft Windows
@@ -64,41 +83,56 @@ is required:
## Client applications
-### Using the C interface (recommended)
-
-GEOS promises long term stability of C API
+### Using the C interface
-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.
+GEOS promises long-term stability of the C API. In general, successive releases
+of the C API may add new functions but will not remove or change existing types
+or function signatures. 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. For
+this reason, it is recommended to use the C API for software that is intended
+to be dynamically linked to a system install of GEOS.
-To compile programs against the C lib (recommended):
+The `geos-config` program can be used to determine appropriate compiler and
+linker flags for building against the C library:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
- #include <geos_c.h>
-Example usage:
+All functionality of the C API is available through the `geos_c.h` header file.
- capi/geostest.c contains basic usage examples.
+Documentation for the C API is provided via comments in the `geos_c.h` header file.
+C API usage examples can be found in the GEOS unit tests and in the source
+code of software that uses GEOS, such as PostGIS and the sf package for R.
-### Using the C++ interface (no stability promise)
+### Using the C++ interface
-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++ interface to GEOS provides a more natural API for C++ programs, as well
+as additional functionality that has not been exposed in the C API. However,
+developers who decide to use the C++ interface should be aware that GEOS does
+not promise API or ABI stability of the C++ API between releases. Breaking
+changes in the C++ API/ABI are not typically announced or included 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.
+The C++ library name will change on every minor release.
-To compile programs against the C++ lib:
+The `geos-config` program can be used to determine appropriate compiler and
+linker flags for building against the C++ library:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
+
+A compiler warning may be issued when building against the C++ library. To remove
+the compiler warning, define `USE_UNSTABLE_GEOS_CPP_API` somewhere in the program.
+
+Commonly-used functionality of GEOS is available in the `geos.h` header file.
+Less-common functionality can be accessed by including headers for individual
+classes, e.g. `#include <geos/algorithm/distance/DiscreteHausdorffDistance.h>`.
+
#include <geos.h>
-Basic usage examples can be found in `doc/example.cpp`.
+Documentation for the C++ API is available at https://geos.osgeo.org/doxygen/, and
+basic C++ usage examples can be found in `doc/example.cpp`.
### Scripting language bindings
@@ -110,10 +144,9 @@ when configuring:
./configure .. --enable-ruby
#### PHP
-Since version 3.6.0 PHP bindings are not included in the core
-library anymore but available as a separate project:
-* https://git.osgeo.org/gitea/geos/php-geos
+PHP bindings for GEOS are available from the
+[php-geos](https://git.osgeo.org/gitea/geos/php-geos) project:
#### Python
Since version 3.0, the Python bindings are unsupported. Recommended options:
-----------------------------------------------------------------------
Summary of changes:
README.md | 125 +++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 71 insertions(+), 54 deletions(-)
hooks/post-receive
--
GEOS
More information about the geos-commits
mailing list