1[/============================================================================== 2 Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. 3 Copyright (c) 2008-2012 Bruno Lalande, Paris, France. 4 Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK 5 6 Use, modification and distribution is subject to the Boost Software License, 7 Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 http://www.boost.org/LICENSE_1_0.txt) 9===============================================================================/] 10 11 12 13[section Compilation] 14 15[def __msvc__ MSVC] 16[def __stlport__ [@http://sourceforge.net/projects/stlport STLport]] 17 18[caution Boost.Geometry in Boost 1.73 deprecates support for the C++03 and will require C++14 from Boost 1.75 onwards] 19 20__boost_geometry__ is a headers-only library. Users only need to include the 21library headers in their programs in order to be able to access definitions 22and algorithms provided by the __boost_geometry__ library. No linking against 23any binaries is required. 24 25__boost_geometry__ is only dependant on headers-only __boost__ libraries. 26It does not introduce indirect dependencies on any binary libraries. 27 28In order to be able to use __boost_geometry__, the only thing users need to do 29is to download and/or install Boost and specify location to include 30directories, so `include` directives of this scheme will work: 31 32 #include <boost/...> 33 34[heading Supported Compilers] 35 36__boost_geometry__ library has been successfully tested with the following 37compilers: 38 39* __msvc__ (including Express Editions) 40 * 14.0 (__msvc__ 14 CTP) [/reported by develop report on March, 2015] 41 * 12.0 (__msvc__ 2013) [/reported by develop report on March, 2015] 42 * 11.0 (__msvc__ 2012) [/reported by develop report on March, 2015] 43 * 10.0 (__msvc__ 2010) [/reported by Trunk report May 8, 2011] 44 * 9.0 (__msvc__ 2008) [/reported by Trunk report May 8, 2011] 45 * 8.0 (__msvc__ 2005) [/reported by Trunk report May 8, 2011] 46* gcc 47 * gcc 5.0.0 [/reported by develop report on March, 2015] 48 * gcc 4.9.2 [/reported by develop report on March, 2015] 49 * gcc 4.9.0 [/reported by develop report on March, 2015] 50 * gcc 4.8.4 [/reported by develop report on March, 2015] 51 * gcc 4.8.1 [/reported by develop report on March, 2015] 52 * gcc 4.8.0 [/reported by develop report on March, 2015] 53 * gcc 4.7.3 [/reported by develop report on March, 2015] 54 * gcc 4.7.2 [/reported by develop report on March, 2015] 55 * gcc 4.7.0 [/reported by Trunk report February 12, 2012] 56 * gcc 4.6.4 [/reported by develop report on March, 2015] 57 * gcc 4.6.2 [/reported by Trunk report February 12, 2012] 58 * gcc 4.6.1 [/reported by Trunk report May 8, 2011] 59 * gcc 4.6.0 [/reported by Trunk report May 8, 2011] 60 * gcc 4.5.3 [/reported by develop report on March, 2015] 61 * gcc 4.5.2 [/reported by Trunk report May 8, 2011] 62 * gcc 4.4.7 [/reported by develop report on March, 2015] 63 * gcc 4.4.0 [/reported by Trunk report May 8, 2011] 64 * gcc 4.3.4 [/reported by Trunk report March 26, 2011] 65 * gcc 4.2.1 [/reported by Trunk report May 8, 2011] 66 * gcc 3.4.6 [/reported by Trunk report March 26, 2011] 67* clang 68 * clang 3.6 [/reported by develop report on March, 2015] 69 * clang 3.5 [/reported by develop report on March, 2015] 70 * clang 3.4 [/reported by develop report on March, 2015] 71 * clang 3.3 [/reported by mloskot on October, 2013] 72 * clang 3.2 [/reported by Trunk report March 26, 2011] 73 * clang 3.1 [/reported by develop report on March, 2015] 74 * clang 3.0 [/reported by develop report on March, 2015] 75 * clang 2.9 [/reported by develop report on March, 2015] 76* darwin 77 * darwin 4.0.1 [/reported by Trunk report March 26, 2011] 78 * darwin 4.4 [/reported by Trunk report March 26, 2011] 79* intel 80 * intel 11.1 [/reported by Trunk report March 26, 2011] 81 * intel 11.0 [/reported by Trunk report March 26, 2011] 82 * intel 10.1 [/reported by Trunk report March 26, 2011] 83* pathscale 84 * pathscale 4.0.8 [/reported by Trunk report March 26, 2011] 85 86__boost_geometry__ uses __boost_bb__, a text-based system for developing and 87testing software, to configure, build and execute unit tests and example 88programs. The build configuration is provided as a collection of `Jamfile` 89files. 90 91For gcc, flag [^-Wno-long-long] can be used to surpress some warnings 92originating from Boost. 93 94[heading Includes] 95 96The most convenient headerfile including all algorithms and strategies is 97`geometry.hpp`: 98 99 #include <boost/geometry.hpp> 100 101This is the main header of the __boost_geometry__ library and it is 102recommended to include this file. 103 104Alternatively, it is possible to include __boost_geometry__ header files 105separately. However, this may be inconvenient as header files might be renamed 106or moved occasionaly in future. 107 108Another often used header is `geometries.hpp`: 109 110 #include <boost/geometry/geometries/geometries.hpp> 111 112This includes definitions of all provided geometry types: 113 114* point, 115* linestring, 116* polygon, 117* ring, 118* multi_point, 119* multi_linestring, 120* multi_polygon, 121* box, 122* segment. 123 124The file `geometries.hpp` is not included in 125the `geometry.hpp` headerfile because users should be given the liberty to use 126their own geometries and not the provided ones. However, for the 127__boost_geometry__ users who want to use the provided geometries it is useful 128to include. 129 130[heading Advanced Includes] 131 132Users who have their own geometries and want to use algorithms from 133__boost_geometry__ might include the files containing registration 134macro's, like: 135 136 #include <boost/geometry/geometries/register/point.hpp> 137 138[heading Performance] 139 140The enumeration below is not exhaustive but can contain hints to improve the 141performance: 142 143* For Microsoft __msvc__, set define `_SECURE_SCL=0` for preprocessor. 144* For Microsoft __msvc__, set define `_HAS_ITERATOR_DEBUGGING=0` for preprocessor. 145* Use of __stlport__, a popular open-source implementation of the STL, may result in 146 significantly faster code than use of the C++ standard library provided by __msvc__. 147* Turn on compiler optimizations, compile in release mode. 148 149[heading Problems with Intellisense] 150 151Both versions of __msvc__, 2005 and 2008 (including Express Editions) can hang 152trying to resolve symbols and give [@http://en.wikipedia.org/wiki/IntelliSense 153IntelliSense] suggestions while typing in a bracket or angle bracket. 154This is not directly related to __boost_geometry__, but is caused by problems 155with handling by this IDE large C++ code base with intensively used templates, 156such as Boost and __boost_geometry__. If this is inconvenient, IntelliSense 157can be turned off: 158 159[:['["(...)disabling IntelliSense in VC++. There is a file called `feacp.dll` in 160`<VS8INSTALL>/VC/vcpackages` folder. Renaming this file will disable Intellisense feature.]] 161 162-- [@http://blogs.msdn.com/yash/archive/2007/09/19/intellisense-issues-in-visual-c-2005.aspx Intellisense issues in Visual C++ 2005] 163] 164 165 166[endsect] [/ end of Compilation] 167