CFx SDK Documentation  2023 SP0
AECBuildSettings.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 #ifndef __AECBUILDSETTINGS_H__
25 #define __AECBUILDSETTINGS_H__
26 
27 #include "OdaCommon.h"
28 
29  #if defined(ODA_WINDOWS)
30  #pragma warning( disable: 4275 4251 )
31  #endif
32 
33  #define TA_DLL_EXPORT OD_DLL_EXPORT
34  #define TA_DLL_IMPORT OD_DLL_IMPORT
35 
36 #ifdef ADT_STATIC_BUILD
37 
38  #define AECARCHBASE_API
39  #define AECARCHBASE_API_STATIC
40 
41  #define AECARCHDACHBASE_API
42  #define AECARCHDACHBASE_API_STATIC
43 
44  #define AECBASE_API
45  #define AECBASE_API_STATIC
46 
47  #define AECGEOMETRY_API
48  #define AECGEOMETRY_API_STATIC
49 
50  #define AECSCHEDULE_API
51  #define AECSCHEDULE_API_STATIC
52 
53  #define AECSCHEDULEDATA_API
54  #define AECSCHEDULEDATA_API_STATIC
55 
56  #define AECSTRUCTUREBASE_API
57  #define AECSTRUCTUREBASE_API_STATIC
58 
59  #define AECTESTS_API
60  #define AECTESTS_API_STATIC
61 
62 #elif defined(ADT_DYNAMIC_BUILD)
63 
64  #ifdef AECARCHBASE_EXPORTS
65  #define AECARCHBASE_API TA_DLL_EXPORT
66  #define AECARCHBASE_API_STATIC
67  #else
68  #define AECARCHBASE_API
69  #define AECARCHBASE_API_STATIC TA_DLL_IMPORT
70  #endif
71 
72  #ifdef AECARCHDACHBASE_EXPORTS
73  #define AECARCHDACHBASE_API TA_DLL_EXPORT
74  #define AECARCHDACHBASE_API_STATIC
75  #else
76  #define AECARCHDACHBASE_API
77  #define AECARCHDACHBASE_API_STATIC TA_DLL_IMPORT
78  #endif
79 
80  #ifdef AECBASE_EXPORTS
81  #define AECBASE_API TA_DLL_EXPORT
82  #define AECBASE_API_STATIC
83  #else
84  #define AECBASE_API
85  #define AECBASE_API_STATIC TA_DLL_IMPORT
86  #endif
87 
88  #ifdef AECGEOMETRY_EXPORTS
89  #define AECGEOMETRY_API TA_DLL_EXPORT
90  #define AECGEOMETRY_API_STATIC
91  #else
92  #define AECGEOMETRY_API
93  #define AECGEOMETRY_API_STATIC TA_DLL_IMPORT
94  #endif
95 
96  #ifdef AECSCHEDULE_EXPORTS
97  #define AECSCHEDULE_API TA_DLL_EXPORT
98  #define AECSCHEDULE_API_STATIC
99  #else
100  #define AECSCHEDULE_API
101  #define AECSCHEDULE_API_STATIC TA_DLL_IMPORT
102  #endif
103 
104  #ifdef AECSCHEDULEDATA_EXPORTS
105  #define AECSCHEDULEDATA_API TA_DLL_EXPORT
106  #define AECSCHEDULEDATA_API_STATIC
107  #else
108  #define AECSCHEDULEDATA_API
109  #define AECSCHEDULEDATA_API_STATIC TA_DLL_IMPORT
110  #endif
111 
112  #ifdef AECSTRUCTUREBASE_EXPORTS
113  #define AECSTRUCTUREBASE_API TA_DLL_EXPORT
114  #define AECSTRUCTUREBASE_API_STATIC
115  #else
116  #define AECSTRUCTUREBASE_API
117  #define AECSTRUCTUREBASE_API_STATIC TA_DLL_IMPORT
118  #endif
119 
120  #ifdef AECTESTS_EXPORTS
121  #define AECTESTS_API TA_DLL_EXPORT
122  #define AECTESTS_API_STATIC
123  #else
124  #define AECTESTS_API
125  #define AECTESTS_API_STATIC TA_DLL_IMPORT
126  #endif
127 
128 #else
129 
130  #error "You must choose STATIC or DYNAMIC build setting! Use ADT_STATIC_BUILD or ADT_DYNAMIC_BUILD defines."
131 
132 #endif
133 
134 #endif //__AECBUILDSETTINGS_H__