Main MRPT website > C++ reference for MRPT 1.4.0
hwdrivers_impexp.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2016, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 
10 /* This file should be included from utils_defs.h only!
11 */
12 #ifndef _IAMINUTILSDEFS_H
13 #error Do not include this file manually
14 #endif
15 
16 /* This file defines macros for DLL import/export, required for
17  Windows only.
18 
19  Mostly all the definitions in this file are copied or at least based
20  on the file wx/dlimpexp.h, written by Vadim Zeitlin and published
21  under the wxWindows licence.
22 */
23 
24 #ifndef _HWIMPEXP_H
25 #define _HWIMPEXP_H
26 
27 
28 #if defined(MRPT_OS_WINDOWS)
29  /*
30  __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well
31  as VC++ and gcc
32  */
33 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__GNUC__) || defined(__WATCOMC__)
34 # define HWEXPORT __declspec(dllexport)
35 # define HWIMPORT __declspec(dllimport)
36 # else /* compiler doesn't support __declspec() */
37 # define HWEXPORT
38 # define HWIMPORT
39 # endif
40 #elif defined(MRPT_OS_OS2) /* was __WXPM__ */
41 # if defined (__WATCOMC__)
42 # define HWEXPORT __declspec(dllexport)
43  /*
44  __declspec(dllimport) prepends __imp to imported symbols. We do NOT
45  want that!
46  */
47 # define HWIMPORT
48 # elif defined(__EMX__)
49 # define HWEXPORT
50 # define HWIMPORT
51 # elif (!(defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )))
52 # define HWEXPORT _Export
53 # define HWIMPORT _Export
54 # endif
55 #elif defined(MRPT_OS_APPLE)
56 # ifdef __MWERKS__
57 # define HWEXPORT __declspec(export)
58 # define HWIMPORT __declspec(import)
59 # endif
60 #elif defined(__CYGWIN__)
61 # define HWEXPORT __declspec(dllexport)
62 # define HWIMPORT __declspec(dllimport)
63 #endif
64 
65 /* for other platforms/compilers we don't anything */
66 #ifndef HWEXPORT
67 # define HWEXPORT
68 # define HWIMPORT
69 #endif
70 
71 /*
72  HWDRIVERS_IMPEXP maps to export declaration when building the DLL, to import
73  declaration if using it or to nothing at all if we are not compiling as DLL
74  */
75 #if defined(MRPT_BUILT_AS_DLL)
76 # if defined(mrpt_hwdrivers_EXPORTS) /* Building the DLL */
77 # define HWDRIVERS_IMPEXP HWEXPORT
78 # else /* Using the DLL */
79 # define HWDRIVERS_IMPEXP HWIMPORT
80 # endif
81 #else /* not making nor using DLL */
82 # define HWDRIVERS_IMPEXP
83 #endif
84 
85 #endif /* end of _UTILSIMPEXP_H */



Page generated by Doxygen 1.8.11 for MRPT 1.4.0 SVN:Unversioned directory at Sun Jul 10 11:38:36 UTC 2016