Security Scol plugin
config_dll.h
Go to the documentation of this file.
1// config_dll.h - written and placed in public domain by Jeffrey Walton
2// the bits that make up this source file are from the
3// library's monolithic config.h.
4
29
30#ifndef CRYPTOPP_CONFIG_DLL_H
31#define CRYPTOPP_CONFIG_DLL_H
32
33#include "config_os.h"
34
35#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
36
45 #define CRYPTOPP_IMPORTS ...
46
55 #define CRYPTOPP_EXPORTS ...
56
62 #define CRYPTOPP_IS_DLL
63
72 #define CRYPTOPP_DLL_TEMPLATE_CLASS ...
73
82 #define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS ...
83
92 #define CRYPTOPP_STATIC_TEMPLATE_CLASS ...
93
102 #define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS ...
103
111 #define CRYPTOPP_TABLE extern
112
119 #define CRYPTOPP_API ...
120
121#else // CRYPTOPP_DOXYGEN_PROCESSING
122
123#if defined(CRYPTOPP_WIN32_AVAILABLE)
124
125 #if defined(CRYPTOPP_EXPORTS)
126 # define CRYPTOPP_IS_DLL
127 # define CRYPTOPP_DLL __declspec(dllexport)
128 #elif defined(CRYPTOPP_IMPORTS)
129 # define CRYPTOPP_IS_DLL
130 # define CRYPTOPP_DLL __declspec(dllimport)
131 #else
132 # define CRYPTOPP_DLL
133 #endif
134
135 // C++ makes const internal linkage
136 #define CRYPTOPP_TABLE extern
137 #define CRYPTOPP_API __cdecl
138
139#else // not CRYPTOPP_WIN32_AVAILABLE
140
141 // C++ makes const internal linkage
142 #define CRYPTOPP_TABLE extern
143 #define CRYPTOPP_DLL
144 #define CRYPTOPP_API
145
146#endif // CRYPTOPP_WIN32_AVAILABLE
147
148#if defined(__MWERKS__)
149# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern class CRYPTOPP_DLL
150#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
151# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
152#else
153# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern template class CRYPTOPP_DLL
154#endif
155
156#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_IMPORTS)
157# define CRYPTOPP_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
158#else
159# define CRYPTOPP_DLL_TEMPLATE_CLASS CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS
160#endif
161
162#if defined(__MWERKS__)
163# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern class
164#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
165# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS template class
166#else
167# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern template class
168#endif
169
170#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_EXPORTS)
171# define CRYPTOPP_STATIC_TEMPLATE_CLASS template class
172#else
173# define CRYPTOPP_STATIC_TEMPLATE_CLASS CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS
174#endif
175
176#endif // CRYPTOPP_DOXYGEN_PROCESSING
177
178#endif // CRYPTOPP_CONFIG_DLL_H
Library configuration file.