summaryrefslogtreecommitdiffstats
path: root/gfx/vr/service/osvr/Util/Export.h
blob: 24e8d388df147615e44c850e1aecf4a06f51ba4d (plain)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/** @file
    @brief Automatically-generated export header - do not edit!

    @date 2016

    @author
    Sensics, Inc.
    <http://sensics.com/osvr>
*/

// Copyright 2016 Sensics, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef OSVR_UTIL_EXPORT_H
#define OSVR_UTIL_EXPORT_H

#ifdef OSVR_UTIL_STATIC_DEFINE
#  define OSVR_UTIL_EXPORT
#  define OSVR_UTIL_NO_EXPORT
#endif

/* Per-compiler advance preventative definition */
#if defined(__BORLANDC__) || defined(__CODEGEARC__) || defined(__HP_aCC) || \
    defined(__PGI) || defined(__WATCOMC__)
/* Compilers that don't support deprecated, according to CMake. */
#  ifndef OSVR_UTIL_DEPRECATED
#    define OSVR_UTIL_DEPRECATED
#  endif
#endif

/* Check for attribute support */
#if defined(__INTEL_COMPILER)
/* Checking before GNUC because Intel implements GNU extensions,
 * so it chooses to define __GNUC__ as well. */
#  if __INTEL_COMPILER >= 1200
/* Intel compiler 12.0 or newer can handle these attributes per CMake */
#    define OSVR_UTIL_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
#  endif

#elif defined(__GNUC__)
#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
/* GCC 4.2+ */
#    define OSVR_UTIL_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
#  endif
#endif

/* Per-platform defines */
#if defined(_MSC_VER)
/* MSVC on Windows */

#  ifndef OSVR_UTIL_EXPORT
#    ifdef osvrUtil_EXPORTS
/* We are building this library */
#      define OSVR_UTIL_EXPORT __declspec(dllexport)
#    else
/* We are using this library */
#      define OSVR_UTIL_EXPORT __declspec(dllimport)
#    endif
#  endif

#  ifndef OSVR_UTIL_DEPRECATED
#    define OSVR_UTIL_DEPRECATED __declspec(deprecated)
#  endif

#elif defined(_WIN32) && defined(__GNUC__)
/* GCC-compatible on Windows */

#  ifndef OSVR_UTIL_EXPORT
#    ifdef osvrUtil_EXPORTS
/* We are building this library */
#      define OSVR_UTIL_EXPORT __attribute__((dllexport))
#    else
/* We are using this library */
#      define OSVR_UTIL_EXPORT __attribute__((dllimport))
#    endif
#  endif

#  ifndef OSVR_UTIL_DEPRECATED
#    define OSVR_UTIL_DEPRECATED __attribute__((__deprecated__))
#  endif

#elif defined(OSVR_UTIL_EXPORT_HEADER_SUPPORTS_ATTRIBUTES) || \
    (defined(__APPLE__) && defined(__MACH__))
/* GCC4.2+ compatible (assuming something *nix-like) and Mac OS X */
/* (The first macro is defined at the top of the file, if applicable) */
/* see https://gcc.gnu.org/wiki/Visibility */

#  ifndef OSVR_UTIL_EXPORT
/* We are building/using this library */
#    define OSVR_UTIL_EXPORT __attribute__((visibility("default")))
#  endif

#  ifndef OSVR_UTIL_NO_EXPORT
#    define OSVR_UTIL_NO_EXPORT __attribute__((visibility("hidden")))
#  endif

#  ifndef OSVR_UTIL_DEPRECATED
#    define OSVR_UTIL_DEPRECATED __attribute__((__deprecated__))
#  endif

#endif
/* End of platform ifdefs */

/* fallback def */
#ifndef OSVR_UTIL_EXPORT
#  define OSVR_UTIL_EXPORT
#endif

/* fallback def */
#ifndef OSVR_UTIL_NO_EXPORT
#  define OSVR_UTIL_NO_EXPORT
#endif

/* fallback def */
#ifndef OSVR_UTIL_DEPRECATED_EXPORT
#  define OSVR_UTIL_DEPRECATED_EXPORT OSVR_UTIL_EXPORT OSVR_UTIL_DEPRECATED
#endif

/* fallback def */
#ifndef OSVR_UTIL_DEPRECATED_NO_EXPORT
#  define OSVR_UTIL_DEPRECATED_NO_EXPORT \
    OSVR_UTIL_NO_EXPORT OSVR_UTIL_DEPRECATED
#endif

/* Clean up after ourselves */
#undef OSVR_UTIL_EXPORT_HEADER_SUPPORTS_ATTRIBUTES

#endif