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