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.9.6 for MRPT 1.4.0 SVN: at Thu Mar 23 03:22:58 UTC 2023