Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
library.h
Go to the documentation of this file.
1 /*
2 ** Copyright 2014-2016 The Earlham Institute
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 ** http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 
24 #ifndef LIBRARY_H
25 #define LIBRARY_H
26 
27 #ifdef __cplusplus
28  extern "C" {
29 #endif
30 
31 /* Generic helper definitions for shared library support */
32 
33 #if defined WINDOWS || defined __CYGWIN__
34  #define LIB_HELPER_SYMBOL_IMPORT __declspec(dllimport)
35  #define LIB_HELPER_SYMBOL_EXPORT __declspec(dllexport)
36  #define LIB_HELPER_SYMBOL_LOCAL
37 #elif __GNUC__ >= 4
38  #define LIB_HELPER_SYMBOL_IMPORT __attribute__ ((visibility("default")))
39  #define LIB_HELPER_SYMBOL_EXPORT __attribute__ ((visibility("default")))
40  #define LIB_HELPER_SYMBOL_LOCAL __attribute__ ((visibility("hidden")))
41 #else
42  #define LIB_HELPER_SYMBOL_IMPORT
43  #define LIB_HELPER_SYMBOL_EXPORT
44  #define LIB_HELPER_SYMBOL_LOCAL
45  #define LIB_HELPER_SYMBOL_CONSTANT
46 #endif
47 
48 #ifdef __cplusplus
49 }
50 #endif
51 
52 #endif /* #ifndef LIBRARY_H */