libambix
the AMBIsonics eXchange library
exportdefs.h
Go to the documentation of this file.
1 /* ambix/exportdefs.h - defines for dll import/export -*- c -*-
2 
3  Copyright © 2012 IOhannes m zmölnig <zmoelnig@iem.at>
4  Institute of Electronic Music and Acoustics (IEM),
5  University of Music and Dramatic Arts, Graz
6 
7  This file is part of libambix
8 
9  libambix is free software; you can redistribute it and/or modify
10  it under the terms of the GNU Lesser General Public License as
11  published by the Free Software Foundation; either version 2.1 of
12  the License, or (at your option) any later version.
13 
14  libambix is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public
20  License along with this program; if not, see <http://www.gnu.org/licenses/>.
21 
22 */
23 
33 #ifndef AMBIX_EXPORTDEFS_H
34 #define AMBIX_EXPORTDEFS_H
35 
36 #if defined _MSC_VER
37 /* MSVC always uses dllimport/dllexport */
38 # define DLL_EXPORT
39 #endif /* _MSC_VER */
40 
41 #ifdef DLL_EXPORT
42 /* Windows requires explicit import and exporting of functions and classes.
43  * While this is a pain to do sometimes, in large software development
44  * projects, it is very useful.
45  */
46 # define AMBIX_EXPORT __declspec(dllexport)
47 # define AMBIX_IMPORT __declspec(dllimport)
48 
49 # define AMBIX_DEPRECATED __declspec(deprecated)
50 
51 #elif defined __GNUC__
52 # define AMBIX_EXPORT __attribute__ ((visibility("default")))
53 # define AMBIX_IMPORT
54 
55 # define AMBIX_DEPRECATED __attribute__ ((deprecated))
56 
57 #else
58 /* unknown compiler */
59 # warning set up compiler specific defines
60 
62 # define AMBIX_EXPORT
63 
64 # define AMBIX_IMPORT
65 
66 # define AMBIX_DEPRECATED
67 #endif
68 
69 #ifdef AMBIX_INTERNAL
70 
71 # define AMBIX_API AMBIX_EXPORT
72 #else
73 
74 # define AMBIX_API AMBIX_IMPORT
75 #endif
76 
77 #endif /* AMBIX_EXPORTDEFS_H */