PLCnext API Documentation 24.0.0.71
DllConfig.h
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
7#include "Arp/System/Core/CxxConfig.h"
8
9#ifndef ARP_INSIDE_ARP_H
10 #error Never include 'DllConfig.h' directly, just include 'Arp.h'
11#endif
12
13#if defined ARP_CXX_TOOLSET_MSVC
14
15 #define ARP_EXPORT __declspec(dllexport)
16 #define ARP_IMPORT __declspec(dllimport)
17 // The ARP_CXX_SYMBOL_EXPORT/ARP_CXX_SYMBOL_IMPORT macros are defined in .props files of Arp solution build,
18 // because in static libs the macro has to be empty,
19 // due to export enum problem when multiple dll's link to the origin definition
20
21#elif defined ARP_CXX_TOOLSET_CYGWIN
22
23 #define ARP_EXPORT __attribute__ ((dllexport))
24 #define ARP_IMPORT __attribute__ ((dllimport))
25 #define ARP_CXX_SYMBOL_EXPORT __attribute__ ((dllexport))
26 #define ARP_CXX_SYMBOL_IMPORT __attribute__ ((dllimport))
27
28#elif defined ARP_CXX_TOOLSET_GNUC
29
30 #if __GNUC__ >= 4
31
32 #define ARP_EXPORT __attribute__ ((visibility ("default")))
33 #define ARP_IMPORT __attribute__ ((visibility ("default")))
34 #define ARP_CXX_SYMBOL_EXPORT __attribute__ ((visibility ("default")))
35 #define ARP_CXX_SYMBOL_IMPORT __attribute__ ((visibility ("default")))
36
37 #else
38
39 #define ARP_EXPORT
40 #define ARP_IMPORT
41 #define ARP_CXX_SYMBOL_EXPORT
42 #define ARP_CXX_SYMBOL_IMPORT
43
44 #endif
45
46#else
47
48 #error "Toolset is not supported"
49
50#endif
51
52
53#ifdef ARP_DOXIFY
54
56
58 #define ARP_EXPORT
59
61 #define ARP_IMPORT
62
64 #define ARP_CXX_SYMBOL_EXPORT
65
67 #define ARP_CXX_SYMBOL_IMPORT
68
69#endif // ARP_DOXIFY