compiling.qbk 6.7 KB

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