1#ifndef BENCHMARK_EXPORT_H
2#define BENCHMARK_EXPORT_H
3
4#if defined(_WIN32)
5#define EXPORT_ATTR __declspec(dllexport)
6#define IMPORT_ATTR __declspec(dllimport)
7#define NO_EXPORT_ATTR
8#define DEPRECATED_ATTR __declspec(deprecated)
9#else // _WIN32
10#define EXPORT_ATTR __attribute__((visibility("default")))
11#define IMPORT_ATTR __attribute__((visibility("default")))
12#define NO_EXPORT_ATTR __attribute__((visibility("hidden")))
13#define DEPRECATE_ATTR __attribute__((__deprecated__))
14#endif // _WIN32
15
16#ifdef BENCHMARK_STATIC_DEFINE
17#define BENCHMARK_EXPORT
18#define BENCHMARK_NO_EXPORT
19#else // BENCHMARK_STATIC_DEFINE
20#ifndef BENCHMARK_EXPORT
21#ifdef benchmark_EXPORTS
22/* We are building this library */
23#define BENCHMARK_EXPORT EXPORT_ATTR
24#else // benchmark_EXPORTS
25/* We are using this library */
26#define BENCHMARK_EXPORT IMPORT_ATTR
27#endif // benchmark_EXPORTS
28#endif // !BENCHMARK_EXPORT
29
30#ifndef BENCHMARK_NO_EXPORT
31#define BENCHMARK_NO_EXPORT NO_EXPORT_ATTR
32#endif // !BENCHMARK_NO_EXPORT
33#endif // BENCHMARK_STATIC_DEFINE
34
35#ifndef BENCHMARK_DEPRECATED
36#define BENCHMARK_DEPRECATED DEPRECATE_ATTR
37#endif // BENCHMARK_DEPRECATED
38
39#ifndef BENCHMARK_DEPRECATED_EXPORT
40#define BENCHMARK_DEPRECATED_EXPORT BENCHMARK_EXPORT BENCHMARK_DEPRECATED
41#endif // BENCHMARK_DEPRECATED_EXPORT
42
43#ifndef BENCHMARK_DEPRECATED_NO_EXPORT
44#define BENCHMARK_DEPRECATED_NO_EXPORT BENCHMARK_NO_EXPORT BENCHMARK_DEPRECATED
45#endif // BENCHMARK_DEPRECATED_EXPORT
46
47#endif /* BENCHMARK_EXPORT_H */
48

source code of third-party/benchmark/include/benchmark/export.h