auto_link.hpp
Go to the documentation of this file.
1 // (C) Copyright John Maddock 2003.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6  /*
7  * LOCATION: see http://www.boost.org for most recent version.
8  * FILE auto_link.hpp
9  * VERSION see <boost/version.hpp>
10  * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
11  */
12 
13 /*************************************************************************
14 
15 USAGE:
16 ~~~~~~
17 
18 Before including this header you must define one or more of define the following macros:
19 
20 BOOST_LIB_NAME: Required: A string containing the basename of the library,
21  for example boost_regex.
22 BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
23 BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
24 BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
25  of the library selected (useful for debugging).
26 BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
27  rather than a mangled-name version.
28 BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
29  This is essentially the same as the default name-mangled version, but without
30  the compiler name and version, or the Boost version. Just the build options.
31 
32 These macros will be undef'ed at the end of the header, further this header
33 has no include guards - so be sure to include it only once from your library!
34 
35 Algorithm:
36 ~~~~~~~~~~
37 
38 Libraries for Borland and Microsoft compilers are automatically
39 selected here, the name of the lib is selected according to the following
40 formula:
41 
42 BOOST_LIB_PREFIX
43  + BOOST_LIB_NAME
44  + "_"
45  + BOOST_LIB_TOOLSET
46  + BOOST_LIB_THREAD_OPT
47  + BOOST_LIB_RT_OPT
48  "-"
49  + BOOST_LIB_VERSION
50 
51 These are defined as:
52 
53 BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
54 
55 BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
56 
57 BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
58 
59 BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
60 
61 BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
62  contains one or more of the following letters after
63  a hyphen:
64 
65  s static runtime (dynamic if not present).
66  g debug/diagnostic runtime (release if not present).
67  y Python debug/diagnostic runtime (release if not present).
68  d debug build (release if not present).
69  p STLport build.
70  n STLport build without its IOStreams.
71 
72 BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
73 
74 
75 ***************************************************************************/
76 
77 #ifdef __cplusplus
78 # ifndef BOOST_CONFIG_HPP
79 # include <boost/config.hpp>
80 # endif
81 #elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
82 //
83 // C language compatability (no, honestly)
84 //
85 # define BOOST_MSVC _MSC_VER
86 # define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
87 # define BOOST_DO_STRINGIZE(X) #X
88 #endif
89 //
90 // Only include what follows for known and supported compilers:
91 //
92 #if defined(BOOST_MSVC) \
93  || defined(__BORLANDC__) \
94  || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
95  || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
96 
97 #ifndef BOOST_VERSION_HPP
98 # include <boost/version.hpp>
99 #endif
100 
101 #ifndef BOOST_LIB_NAME
102 # error "Macro BOOST_LIB_NAME not set (internal error)"
103 #endif
104 
105 //
106 // error check:
107 //
108 #if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
109 # pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
110 # pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
111 # error "Incompatible build options"
112 #endif
113 //
114 // select toolset if not defined already:
115 //
116 #ifndef BOOST_LIB_TOOLSET
117 # if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
118  // Note: no compilers before 1200 are supported
119 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
120 
121 # ifdef UNDER_CE
122  // eVC4:
123 # define BOOST_LIB_TOOLSET "evc4"
124 # else
125  // vc6:
126 # define BOOST_LIB_TOOLSET "vc6"
127 # endif
128 
129 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
130 
131  // vc7:
132 # define BOOST_LIB_TOOLSET "vc7"
133 
134 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
135 
136  // vc71:
137 # define BOOST_LIB_TOOLSET "vc71"
138 
139 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
140 
141  // vc80:
142 # define BOOST_LIB_TOOLSET "vc80"
143 
144 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
145 
146  // vc90:
147 # define BOOST_LIB_TOOLSET "vc90"
148 
149 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
150 
151  // vc10:
152 # define BOOST_LIB_TOOLSET "vc100"
153 
154 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
155 
156  // vc11:
157 # define BOOST_LIB_TOOLSET "vc110"
158 
159 # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
160 
161  // vc12:
162 # define BOOST_LIB_TOOLSET "vc120"
163 
164 # elif defined(BOOST_MSVC)
165 
166  // vc14:
167 # define BOOST_LIB_TOOLSET "vc140"
168 
169 # elif defined(__BORLANDC__)
170 
171  // CBuilder 6:
172 # define BOOST_LIB_TOOLSET "bcb"
173 
174 # elif defined(__ICL)
175 
176  // Intel C++, no version number:
177 # define BOOST_LIB_TOOLSET "iw"
178 
179 # elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
180 
181  // Metrowerks CodeWarrior 8.x
182 # define BOOST_LIB_TOOLSET "cw8"
183 
184 # elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
185 
186  // Metrowerks CodeWarrior 9.x
187 # define BOOST_LIB_TOOLSET "cw9"
188 
189 # endif
190 #endif // BOOST_LIB_TOOLSET
191 
192 //
193 // select thread opt:
194 //
195 #if defined(_MT) || defined(__MT__)
196 # define BOOST_LIB_THREAD_OPT "-mt"
197 #else
198 # define BOOST_LIB_THREAD_OPT
199 #endif
200 
201 #if defined(_MSC_VER) || defined(__MWERKS__)
202 
203 # ifdef _DLL
204 
205 # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
206 
207 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
208  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
209 # define BOOST_LIB_RT_OPT "-gydp"
210 # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
211 # define BOOST_LIB_RT_OPT "-gdp"
212 # elif defined(_DEBUG)\
213  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
214 # define BOOST_LIB_RT_OPT "-gydp"
215 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
216 # error "Build options aren't compatible with pre-built libraries"
217 # elif defined(_DEBUG)
218 # define BOOST_LIB_RT_OPT "-gdp"
219 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
220 # error "Build options aren't compatible with pre-built libraries"
221 # else
222 # define BOOST_LIB_RT_OPT "-p"
223 # endif
224 
225 # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
226 
227 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
228  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
229 # define BOOST_LIB_RT_OPT "-gydpn"
230 # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
231 # define BOOST_LIB_RT_OPT "-gdpn"
232 # elif defined(_DEBUG)\
233  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
234 # define BOOST_LIB_RT_OPT "-gydpn"
235 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
236 # error "Build options aren't compatible with pre-built libraries"
237 # elif defined(_DEBUG)
238 # define BOOST_LIB_RT_OPT "-gdpn"
239 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
240 # error "Build options aren't compatible with pre-built libraries"
241 # else
242 # define BOOST_LIB_RT_OPT "-pn"
243 # endif
244 
245 # else
246 
247 # if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
248 # define BOOST_LIB_RT_OPT "-gyd"
249 # elif defined(_DEBUG)
250 # define BOOST_LIB_RT_OPT "-gd"
251 # else
252 # define BOOST_LIB_RT_OPT
253 # endif
254 
255 # endif
256 
257 # else
258 
259 # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
260 
261 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
262  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
263 # define BOOST_LIB_RT_OPT "-sgydp"
264 # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
265 # define BOOST_LIB_RT_OPT "-sgdp"
266 # elif defined(_DEBUG)\
267  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
268 # define BOOST_LIB_RT_OPT "-sgydp"
269 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
270 # error "Build options aren't compatible with pre-built libraries"
271 # elif defined(_DEBUG)
272 # define BOOST_LIB_RT_OPT "-sgdp"
273 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
274 # error "Build options aren't compatible with pre-built libraries"
275 # else
276 # define BOOST_LIB_RT_OPT "-sp"
277 # endif
278 
279 # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
280 
281 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
282  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
283 # define BOOST_LIB_RT_OPT "-sgydpn"
284 # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
285 # define BOOST_LIB_RT_OPT "-sgdpn"
286 # elif defined(_DEBUG)\
287  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
288 # define BOOST_LIB_RT_OPT "-sgydpn"
289 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
290 # error "Build options aren't compatible with pre-built libraries"
291 # elif defined(_DEBUG)
292 # define BOOST_LIB_RT_OPT "-sgdpn"
293 # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
294 # error "Build options aren't compatible with pre-built libraries"
295 # else
296 # define BOOST_LIB_RT_OPT "-spn"
297 # endif
298 
299 # else
300 
301 # if defined(_DEBUG)\
302  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
303 # define BOOST_LIB_RT_OPT "-sgyd"
304 # elif defined(_DEBUG)
305 # define BOOST_LIB_RT_OPT "-sgd"
306 # else
307 # define BOOST_LIB_RT_OPT "-s"
308 # endif
309 
310 # endif
311 
312 # endif
313 
314 #elif defined(__BORLANDC__)
315 
316 //
317 // figure out whether we want the debug builds or not:
318 //
319 #if __BORLANDC__ > 0x561
320 #pragma defineonoption BOOST_BORLAND_DEBUG -v
321 #endif
322 //
323 // sanity check:
324 //
325 #if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
326 #error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
327 #endif
328 
329 # ifdef _RTLDLL
330 
331 # if defined(BOOST_BORLAND_DEBUG)\
332  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
333 # define BOOST_LIB_RT_OPT "-yd"
334 # elif defined(BOOST_BORLAND_DEBUG)
335 # define BOOST_LIB_RT_OPT "-d"
336 # elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
337 # define BOOST_LIB_RT_OPT -y
338 # else
339 # define BOOST_LIB_RT_OPT
340 # endif
341 
342 # else
343 
344 # if defined(BOOST_BORLAND_DEBUG)\
345  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
346 # define BOOST_LIB_RT_OPT "-syd"
347 # elif defined(BOOST_BORLAND_DEBUG)
348 # define BOOST_LIB_RT_OPT "-sd"
349 # elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
350 # define BOOST_LIB_RT_OPT "-sy"
351 # else
352 # define BOOST_LIB_RT_OPT "-s"
353 # endif
354 
355 # endif
356 
357 #endif
358 
359 //
360 // select linkage opt:
361 //
362 #if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
363 # define BOOST_LIB_PREFIX
364 #elif defined(BOOST_DYN_LINK)
365 # error "Mixing a dll boost library with a static runtime is a really bad idea..."
366 #else
367 # define BOOST_LIB_PREFIX "lib"
368 #endif
369 
370 //
371 // now include the lib:
372 //
373 #if defined(BOOST_LIB_NAME) \
374  && defined(BOOST_LIB_PREFIX) \
375  && defined(BOOST_LIB_TOOLSET) \
376  && defined(BOOST_LIB_THREAD_OPT) \
377  && defined(BOOST_LIB_RT_OPT) \
378  && defined(BOOST_LIB_VERSION)
379 
380 #ifdef BOOST_AUTO_LINK_TAGGED
381 # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
382 # ifdef BOOST_LIB_DIAGNOSTIC
383 # pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
384 # endif
385 #elif defined(BOOST_AUTO_LINK_NOMANGLE)
386 # pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
387 # ifdef BOOST_LIB_DIAGNOSTIC
388 # pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
389 # endif
390 #elif defined(BOOST_LIB_BUILDID)
391 # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
392 # ifdef BOOST_LIB_DIAGNOSTIC
393 # pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
394 # endif
395 #else
396 # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
397 # ifdef BOOST_LIB_DIAGNOSTIC
398 # pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
399 # endif
400 #endif
401 
402 #else
403 # error "some required macros where not defined (internal logic error)."
404 #endif
405 
406 
407 #endif // _MSC_VER || __BORLANDC__
408 
409 //
410 // finally undef any macros we may have set:
411 //
412 #ifdef BOOST_LIB_PREFIX
413 # undef BOOST_LIB_PREFIX
414 #endif
415 #if defined(BOOST_LIB_NAME)
416 # undef BOOST_LIB_NAME
417 #endif
418 // Don't undef this one: it can be set by the user and should be the
419 // same for all libraries:
420 //#if defined(BOOST_LIB_TOOLSET)
421 //# undef BOOST_LIB_TOOLSET
422 //#endif
423 #if defined(BOOST_LIB_THREAD_OPT)
424 # undef BOOST_LIB_THREAD_OPT
425 #endif
426 #if defined(BOOST_LIB_RT_OPT)
427 # undef BOOST_LIB_RT_OPT
428 #endif
429 #if defined(BOOST_LIB_LINK_OPT)
430 # undef BOOST_LIB_LINK_OPT
431 #endif
432 #if defined(BOOST_LIB_DEBUG_OPT)
433 # undef BOOST_LIB_DEBUG_OPT
434 #endif
435 #if defined(BOOST_DYN_LINK)
436 # undef BOOST_DYN_LINK
437 #endif
438 
439 
config.hpp
version.hpp


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:36:38