Merge branch 'ml/clarify-cpp-api-status' of mloskot/geos into master
commit
18ad844411
23
README.md
23
README.md
|
|
@ -58,6 +58,12 @@ is required:
|
|||
|
||||
### 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`
|
||||
|
|
@ -68,16 +74,15 @@ Example usage:
|
|||
|
||||
capi/geostest.c contains basic usage examples.
|
||||
|
||||
### Using the C++ interface (discouraged)
|
||||
### Using the C++ interface (no stability promise)
|
||||
|
||||
NB: The C++ interface should not be used directly; the GEOS project
|
||||
views it as a bug for another program to use the C++ interface or even
|
||||
to directly link against the C++ library. 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 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.)
|
||||
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:
|
||||
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ lib_LTLIBRARIES = libgeos.la
|
|||
|
||||
# libgeos uses -release because it is not feasible to know if the ABI
|
||||
# has changed between releases; the project chooses not to expend the
|
||||
# effort to determine this because depending programs should not be
|
||||
# using the C++ library.
|
||||
# effort to determine this because GEOS does not promise ABI stability.
|
||||
libgeos_la_LDFLAGS = \
|
||||
-release @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@ \
|
||||
-no-undefined
|
||||
|
|
|
|||
Loading…
Reference in New Issue