{{{ #!html

*** IMPORANT: Testers of CMake configuration wanted! Please, try to build GEOS with CMake and report any problems by submitting New Ticket. Patches welcome! ***

}}} = Building on Unix with CMake = The following instructions are dedicated to users of Unix-like systems (Linux, Mac OS X, Solaris, *BSD, etc.) This article describes how to use [http://www.cmake.org CMake] build system to build and install GEOS from sources. GEOS has got equipped with build configuration for CMake shortly after [milestone:3.2.0 GEOS 3.2.0] release (ticket #317), thus it is considered as work in progress, experimental. Hopefully, it will get into next release of [milestone:3.3.0 GEOS 3.3.0] version. == Requirements == * [http://www.cmake.org CMake] 2.6 or later * Decent C++ compiler and C++ Standard Library, [http://gcc.gnu.org/ GNU GCC] 4.x or later recommended * GEOS source code. Currently, only source code in SVN [source:trunk trunk] is configured for CMake == Configure == Important, it is highly recommended to configure build out of source code tree. {{{ $ svn checkout http://svn.osgeo.org/geos/trunk trunk $ mkdir build $ ls build trunk $ cd build $ cmake ../trunk $ make help }}} There is collection of [http://cmake.org/cmake/help/cmake-2-8-docs.html#section_Variables CMake variables] available to set by user to control various aspects of compilation and installation. For instance ''CMAKE_INSTALL_PREFIX'' variable which by default is set to ''/usr/local'' directory. == Build == {{{ $ make }}} == Test == In CMake build system, testing capabilities are provided by [http://www.itk.org/Wiki/CTest:FAQ CTest] which is distributed together with CMake package. After the build is ready, tests can be run. Natively, CMake uses target named ''test'': {{{ $ make test }}} For convenience, Autotools-like alias is also available: {{{ $ make check }}} It is also possible to run ''ctest'' program directly, but not through any of the ''make'' targets. This option gives access to number of ''ctest'' command line options (''cmake --help''), for example: {{{ $ ctest $ ctest --verbose }}} == Install == {{{ $ make install }}}