| 1 | = GEOS RFC 7: Use CMake for build system = |
| 2 | |
| 3 | ||RFC 6: ||Use CMake for build system|| |
| 4 | ||Author: ||Daniel Baston || |
| 5 | ||Contact:||dbaston@gmail.com || |
| 6 | ||Status: || || |
| 7 | |
| 8 | This document proposes to use CMake as the build system for GEOS and discontinue use of autotools and NMake. |
| 9 | |
| 10 | Since version 3.5, we have officially supported building GEOS with CMake: https://trac.osgeo.org/geos/wiki/BuildingOnUnixWithCMake |
| 11 | |
| 12 | GEOS is also required to build with autotools and NMake. |
| 13 | |
| 14 | Supporting three build systems: |
| 15 | |
| 16 | * Decreases ease of contribution, because any change must be tested against all three build systems. This results in more developer |
| 17 | effort devoted to the build system rather than the library itself (see for example, commit history of this PR: https://github.com/libgeos/geos/pull/125) |
| 18 | * Increases the risk that multiple build systems in fact cause the library to be compiled with different behavior, or with different |
| 19 | version information (for example, see https://trac.osgeo.org/geos/ticket/882) |
| 20 | * Increases the length of the commit-testing feedback cycle, since multiple build systems must be tested before giving a pull request a |
| 21 | "green light" and insufficient workers are available to test all build systems in parallel. |
| 22 | |
| 23 | This RFC proposes that CMake be used as the exclusive build system because: |
| 24 | |
| 25 | * It is used by the majority of active committers |
| 26 | * It is the only cross-platform build system |