semver: 1.0 -> 1
[m6w6/libmemcached] / include / libmemcached-1 / visibility.h
1 /*
2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
14 */
15
16 #pragma once
17
18 /**
19 *
20 * LIBMEMCACHED_API is used for the public API symbols. It either DLL imports or
21 * DLL exports (or does nothing for static build).
22 *
23 * LIBMEMCACHED_LOCAL is used for non-api symbols.
24 */
25
26 #if defined(BUILDING_LIBMEMCACHEDINTERNAL)
27 # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
28 # define LIBMEMCACHED_API __attribute__((visibility("default")))
29 # define LIBMEMCACHED_LOCAL __attribute__((visibility("default")))
30 # elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
31 # define LIBMEMCACHED_API __global
32 # define LIBMEMCACHED_LOCAL __global
33 # elif defined(_MSC_VER)
34 # define LIBMEMCACHED_API extern __declspec(dllexport)
35 # define LIBMEMCACHED_LOCAL extern __declspec(dllexport)
36 # else
37 # define LIBMEMCACHED_API
38 # define LIBMEMCACHED_LOCAL
39 # endif
40 #else
41 # if defined(BUILDING_LIBMEMCACHED)
42 # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
43 # define LIBMEMCACHED_API __attribute__((visibility("default")))
44 # define LIBMEMCACHED_LOCAL __attribute__((visibility("hidden")))
45 # elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
46 # define LIBMEMCACHED_API __global
47 # define LIBMEMCACHED_LOCAL __hidden
48 # elif defined(_MSC_VER)
49 # define LIBMEMCACHED_API extern __declspec(dllexport)
50 # define LIBMEMCACHED_LOCAL
51 # else
52 # define LIBMEMCACHED_API
53 # define LIBMEMCACHED_LOCAL
54 # endif /* defined(HAVE_VISIBILITY) */
55 # else /* defined(BUILDING_LIBMEMCACHED) */
56 # if defined(_MSC_VER)
57 # define LIBMEMCACHED_API extern __declspec(dllimport)
58 # define LIBMEMCACHED_LOCAL
59 # else
60 # define LIBMEMCACHED_API
61 # define LIBMEMCACHED_LOCAL
62 # endif /* defined(_MSC_VER) */
63 # endif /* defined(BUILDING_LIBMEMCACHED) */
64 #endif /* defined(BUILDING_LIBMEMCACHEDINTERNAL) */