Crypto++
8.3
Free C++ class library of cryptographic schemes
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
5
/// \file config_dll.h
6
/// \brief Library configuration file
7
/// \details <tt>config.h</tt> was split into components in May 2019 to better
8
/// integrate with Autoconf and its feature tests. The splitting occurred so
9
/// users could continue to include <tt>config.h</tt> while allowing Autoconf
10
/// to write new <tt>config_asm.h</tt> and new <tt>config_cxx.h</tt> using
11
/// its feature tests.
12
/// \sa <A HREF="https://github.com/weidai11/cryptopp/issues/835">Issue 835</A>
13
/// \since Crypto++ 8.3
14
15
#ifndef CRYPTOPP_CONFIG_DLL_H
16
#define CRYPTOPP_CONFIG_DLL_H
17
18
#include "
config_os.h
"
19
20
#if !defined(CRYPTOPP_DOXYGEN_PROCESSING)
21
22
#if defined(CRYPTOPP_WIN32_AVAILABLE)
23
24
#if defined(CRYPTOPP_EXPORTS)
25
# define CRYPTOPP_IS_DLL
26
# define CRYPTOPP_DLL __declspec(dllexport)
27
#elif defined(CRYPTOPP_IMPORTS)
28
# define CRYPTOPP_IS_DLL
29
# define CRYPTOPP_DLL __declspec(dllimport)
30
#else
31
# define CRYPTOPP_DLL
32
#endif
33
34
// C++ makes const internal linkage
35
#define CRYPTOPP_TABLE extern
36
#define CRYPTOPP_API __cdecl
37
38
#else // not CRYPTOPP_WIN32_AVAILABLE
39
40
// C++ makes const internal linkage
41
#define CRYPTOPP_TABLE extern
42
#define CRYPTOPP_DLL
43
#define CRYPTOPP_API
44
45
#endif // CRYPTOPP_WIN32_AVAILABLE
46
47
#if defined(__MWERKS__)
48
# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern class CRYPTOPP_DLL
49
#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
50
# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
51
#else
52
# define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS extern template class CRYPTOPP_DLL
53
#endif
54
55
#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_IMPORTS)
56
# define CRYPTOPP_DLL_TEMPLATE_CLASS template class CRYPTOPP_DLL
57
#else
58
# define CRYPTOPP_DLL_TEMPLATE_CLASS CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS
59
#endif
60
61
#if defined(__MWERKS__)
62
# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern class
63
#elif defined(__BORLANDC__) || defined(__SUNPRO_CC)
64
# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS template class
65
#else
66
# define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS extern template class
67
#endif
68
69
#if defined(CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES) && !defined(CRYPTOPP_EXPORTS)
70
# define CRYPTOPP_STATIC_TEMPLATE_CLASS template class
71
#else
72
# define CRYPTOPP_STATIC_TEMPLATE_CLASS CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS
73
#endif
74
75
#endif // CRYPTOPP_DOXYGEN_PROCESSING
76
77
#endif // CRYPTOPP_CONFIG_DLL_H
config_os.h
Library configuration file.
Generated on Fri Dec 25 2020 17:16:54 for Crypto++ by
1.8.20