summaryrefslogtreecommitdiffstats
path: root/gfx/vr/service/osvr/ClientKit/Export.h
blob: eec95c27377f83d44e7151f761b016fdb598154e (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
140
/** @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_CLIENTKIT_EXPORT_H
#define OSVR_CLIENTKIT_EXPORT_H

#ifdef OSVR_CLIENTKIT_STATIC_DEFINE
#  define OSVR_CLIENTKIT_EXPORT
#  define OSVR_CLIENTKIT_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_CLIENTKIT_DEPRECATED
#    define OSVR_CLIENTKIT_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_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES
#  endif

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

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

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

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

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

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

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

#elif defined(OSVR_CLIENTKIT_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_CLIENTKIT_EXPORT
/* We are building/using this library */
#    define OSVR_CLIENTKIT_EXPORT __attribute__((visibility("default")))
#  endif

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

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

#endif
/* End of platform ifdefs */

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

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

/* fallback def */
#ifndef OSVR_CLIENTKIT_DEPRECATED_EXPORT
#  define OSVR_CLIENTKIT_DEPRECATED_EXPORT \
    OSVR_CLIENTKIT_EXPORT OSVR_CLIENTKIT_DEPRECATED
#endif

/* fallback def */
#ifndef OSVR_CLIENTKIT_DEPRECATED_NO_EXPORT
#  define OSVR_CLIENTKIT_DEPRECATED_NO_EXPORT \
    OSVR_CLIENTKIT_NO_EXPORT OSVR_CLIENTKIT_DEPRECATED
#endif

/* Clean up after ourselves */
#undef OSVR_CLIENTKIT_EXPORT_HEADER_SUPPORTS_ATTRIBUTES

#endif