= GEOS RFC 6: Require explicit configure to use the C++ API and ship c++ headers = ||RFC 6: ||Discourage use of C++ API requiring a configure switch to install the c++ headers|| ||Author: ||Regina Obe || ||Contact:||lr@pcorp.us || ||Status: ||[https://lists.osgeo.org/pipermail/geos-devel/2017-October/thread.html#8050 In Discussion] || Past discussions [https://trac.osgeo.org/geos/ticket/553 Trac ticket to deprecate] [https://lists.osgeo.org/pipermail/geos-devel/2017-January/007652.html another request to deprecate and osm2pgsql mess] [https://lists.osgeo.org/pipermail/geos-devel/2012-June/005861.html more examples about how apps linking directly to GEOS C++ causing problems for other applications] [https://lists.osgeo.org/pipermail/geos-devel/2017-January/007653.html Pointing out removing ability to use GEOS C++ reduces users freedoms] This document proposes to change the ./configure to by default only allow use of the C-API. The C++ API headers will only be installed if explicitly asked for as detailed in https://lists.osgeo.org/pipermail/geos-devel/2017-October/008054.html Any developers who want to use the C++ API will have to build with {{{ #autoconf users ./configure --enable-c++-headers-install #cmake users cmake -DINCLUDE_CPP_HEADERS=1 }}} As proposed in [https://lists.osgeo.org/pipermail/geos-devel/2017-October/008054.html] I propose doing this in GEOS 3.7.0. The main purpose is to discourage the use of the C++ API because we do not have the manpower to guarantee ABI compatiblity from version to version and thus using it in an environment where the GEOS library is shared across many software is unsupported. Currently [https://github.com/openstreetmap/osm2pgsql/issues/634 osm2pgsql (which is switching away from GEOS and using Osmium instead)] (and before Osmium, which switched from using GEOS and now uses GDAL) are the only ones that used the GEOS C++ API and largely distributed in shared environment. We want to prevent future projects that plan to be used in a shared environment from using the GEOS C++ API and to stick with the GEOS C API.