aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/rust/15 polyglot sharedlib/adder.h
blob: fb2105ed6404ce4df3b1386948966cd6c3cd092f (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
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

#if defined _WIN32 || defined __CYGWIN__
  #if defined BUILDING_ADDER
    #define DLL_PUBLIC __declspec(dllexport)
  #else
    #define DLL_PUBLIC __declspec(dllimport)
  #endif
#else
  #if defined __GNUC__
    #if defined BUILDING_ADDER
      #define DLL_PUBLIC __attribute__ ((visibility("default")))
    #else
      #define DLL_PUBLIC
    #endif
  #else
    #pragma message ("Compiler does not support symbol visibility.")
    #define DLL_PUBLIC
  #endif
#endif

typedef struct _Adder adder;

DLL_PUBLIC extern adder*  adder_create(int number);
DLL_PUBLIC extern int  adder_add(adder *a, int number);
DLL_PUBLIC extern void  adder_destroy(adder*);

#ifdef __cplusplus
}
#endif