-
Notifications
You must be signed in to change notification settings - Fork 47
/
config.hh.cmake
94 lines (88 loc) · 5.25 KB
/
config.hh.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* This file has been automatically generated by the jrl-cmakemodules.
* Please see https://github.com/jrl-umi3218/jrl-cmakemodules/blob/master/config.hh.cmake for details.
*/
#ifndef @LIBRARY_NAME@_CONFIG_HH
# define @LIBRARY_NAME@_CONFIG_HH
// Package version (header).
# define @LIBRARY_NAME@_VERSION_UNKNOWN_TAG 0 // Used to mention that the current version is unknown.
# define @LIBRARY_NAME@_VERSION "@PROJECT_VERSION@"
# define @LIBRARY_NAME@_MAJOR_VERSION @PROJECT_VERSION_MAJOR_CONFIG@
# define @LIBRARY_NAME@_MINOR_VERSION @PROJECT_VERSION_MINOR_CONFIG@
# define @LIBRARY_NAME@_PATCH_VERSION @PROJECT_VERSION_PATCH_CONFIG@
#define @LIBRARY_NAME@_VERSION_AT_LEAST(major, minor, patch) (@LIBRARY_NAME@_MAJOR_VERSION>major || (@LIBRARY_NAME@_MAJOR_VERSION>=major && \
(@LIBRARY_NAME@_MINOR_VERSION>minor || (@LIBRARY_NAME@_MINOR_VERSION>=minor && \
@LIBRARY_NAME@_PATCH_VERSION>=patch))))
#define @LIBRARY_NAME@_VERSION_AT_MOST(major, minor, patch) (@LIBRARY_NAME@_MAJOR_VERSION<major || (@LIBRARY_NAME@_MAJOR_VERSION<=major && \
(@LIBRARY_NAME@_MINOR_VERSION<minor || (@LIBRARY_NAME@_MINOR_VERSION<=minor && \
@LIBRARY_NAME@_PATCH_VERSION<=patch))))
// Handle portable symbol export.
// Defining manually which symbol should be exported is required
// under Windows whether MinGW or MSVC is used.
//
// The headers then have to be able to work in two different modes:
// - dllexport when one is building the library,
// - dllimport for clients using the library.
//
// On Linux, set the visibility accordingly. If C++ symbol visibility
// is handled by the compiler, see: http://gcc.gnu.org/wiki/Visibility
//
// Explicit template instantiation on Windows need to add
// dllexport on the definition and dllimport on the declaration.
// The XXX_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI macro
// should be set on the declaration while
// the XXX_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI macro
// should be set on the definition.
# if defined _WIN32 || defined __CYGWIN__
// On Microsoft Windows, use dllimport and dllexport to tag symbols.
# define @LIBRARY_NAME@_DLLIMPORT __declspec(dllimport)
# define @LIBRARY_NAME@_DLLEXPORT __declspec(dllexport)
# define @LIBRARY_NAME@_DLLLOCAL
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT __declspec(dllimport)
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT __declspec(dllimport)
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT __declspec(dllexport)
# else
// On Linux, for GCC >= 4, tag symbols using GCC extension.
# if __GNUC__ >= 4
# define @LIBRARY_NAME@_DLLIMPORT __attribute__ ((visibility("default")))
# define @LIBRARY_NAME@_DLLEXPORT __attribute__ ((visibility("default")))
# define @LIBRARY_NAME@_DLLLOCAL __attribute__ ((visibility("hidden")))
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT __attribute__ ((visibility("default")))
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT __attribute__ ((visibility("default")))
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
# else
// Otherwise (GCC < 4 or another compiler is used), export everything.
# define @LIBRARY_NAME@_DLLIMPORT
# define @LIBRARY_NAME@_DLLEXPORT
# define @LIBRARY_NAME@_DLLLOCAL
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
# endif // __GNUC__ >= 4
# endif // defined _WIN32 || defined __CYGWIN__
# ifdef @LIBRARY_NAME@_STATIC
// If one is using the library statically, get rid of
// extra information and use standard explicit template
// instantiation keyword.
# define @LIBRARY_NAME@_DLLAPI
# define @LIBRARY_NAME@_LOCAL
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION extern template
# else
// Depending on whether one is building or using the
// library define DLLAPI to import or export and
// define the right explicit template instantiation keyword.
# ifdef @EXPORT_SYMBOL@
# define @LIBRARY_NAME@_DLLAPI @LIBRARY_NAME@_DLLEXPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
# else
# define @LIBRARY_NAME@_DLLAPI @LIBRARY_NAME@_DLLIMPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT
# define @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI @LIBRARY_NAME@_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
# endif // @LIBRARY_NAME@_EXPORTS
# define @LIBRARY_NAME@_LOCAL @LIBRARY_NAME@_DLLLOCAL
# endif // @LIBRARY_NAME@_STATIC
#endif //! @LIBRARY_NAME@_CONFIG_HH