• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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