KVIrc
5.2.4
Developer APIs
src
kvilib
config
kvi_settings.h
Go to the documentation of this file.
1
#ifndef _KVI_SETTINGS_H_
2
#define _KVI_SETTINGS_H_
3
//=============================================================================
4
//
5
// File : kvi_settings.h
6
// Creation date : Fri Mar 19 1999 05:21:13 CEST by Szymon Stefanek
7
//
8
// This file is part of the KVIrc IRC client distribution
9
// Copyright (C) 1999-2010 Szymon Stefanek (pragma at kvirc dot net)
10
//
11
// This program is FREE software. You can redistribute it and/or
12
// modify it under the terms of the GNU General Public License
13
// as published by the Free Software Foundation; either version 2
14
// of the License, or (at your option) any later version.
15
//
16
// This program is distributed in the HOPE that it will be USEFUL,
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
// See the GNU General Public License for more details.
20
//
21
// You should have received a copy of the GNU General Public License
22
// along with this program. If not, write to the Free Software Foundation,
23
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24
//
25
//=============================================================================
26
36
#include <QtGlobal>
37
38
// assume CMake build system for all systems
39
#include "kvi_sysconfig.h"
40
50
// note: MINGW is a cmake-set variable
51
#ifdef MINGW
52
56
#define COMPILE_ON_MINGW
57
58
#ifdef _WANT_KVILIB_
59
#define KVILIB_API __declspec(dllexport) __attribute__((visibility("default")))
60
#define KVILIB_API_TYPEDEF __declspec(dllexport)
61
#else
62
#define KVILIB_API __declspec(dllimport) __attribute__((visibility("default")))
63
#define KVILIB_API_TYPEDEF __declspec(dllimport)
64
#endif
65
66
#ifdef _WANT_KVIRC_
67
#define KVIRC_API __declspec(dllexport) __attribute__((visibility("default")))
68
#define KVIRC_API_TYPEDEF __declspec(dllexport)
69
#else
70
#define KVIRC_API __declspec(dllimport) __attribute__((visibility("default")))
71
#define KVIRC_API_TYPEDEF __declspec(dllimport)
72
#endif
73
74
// note: unofficial cmake ports defines OS2
75
#elif defined(OS2)
76
77
// os2 ports still uses mingw/gcc
78
#define COMPILE_ON_MINGW
79
80
// visibility attribute is not supported by gcc/os2
81
#ifdef _WANT_KVILIB_
82
#define KVILIB_API __declspec(dllexport)
83
#define KVILIB_API_TYPEDEF __declspec(dllexport)
84
#else
85
#define KVILIB_API __declspec(dllimport)
86
#define KVILIB_API_TYPEDEF __declspec(dllimport)
87
#endif
88
89
#ifdef _WANT_KVIRC_
90
#define KVIRC_API __declspec(dllexport)
91
#define KVIRC_API_TYPEDEF __declspec(dllexport)
92
#else
93
#define KVIRC_API __declspec(dllimport)
94
#define KVIRC_API_TYPEDEF __declspec(dllimport)
95
#endif
96
97
// note: cmake defines "WIN32" but we're not using it since it includes cygwin, too
98
// we use qt's Q_OS_WIN32 instead (and its variants)
99
#elif(defined(_OS_WIN32_) || defined(Q_OS_WIN32) || defined(Q_OS_WIN32_))
100
104
#define COMPILE_ON_WINDOWS
105
106
#ifdef _WANT_KVILIB_
107
#define KVILIB_API __declspec(dllexport)
108
#define KVILIB_API_TYPEDEF __declspec(dllexport)
109
#else
110
#define KVILIB_API __declspec(dllimport)
111
#define KVILIB_API_TYPEDEF __declspec(dllimport)
112
#endif
113
114
#ifdef _WANT_KVIRC_
115
#define KVIRC_API __declspec(dllexport)
116
#define KVIRC_API_TYPEDEF __declspec(dllexport)
117
#else
118
#define KVIRC_API __declspec(dllimport)
119
#define KVIRC_API_TYPEDEF __declspec(dllimport)
120
#endif
121
122
#else
123
// we failback on unix/linux variants
124
#define KVILIB_API __attribute__((visibility("default")))
125
#define KVILIB_API_TYPEDEF
126
127
#define KVIRC_API __attribute__((visibility("default")))
128
#define KVIRC_API_TYPEDEF
129
130
// note: cmake defines "APPLE" but we're not using it since it includes legacy mac os version (pre-X)
131
// we use qt's Q_OS_MACOS instead
132
#ifdef Q_OS_MACOS
137
#define COMPILE_ON_MAC
138
#endif
139
140
#endif
141
152
#define KVI_VERSION KVIRC_VERSION_RELEASE
153
154
#ifndef KVIRC_VERSION_BRANCH
155
#define KVI_VERSION_BRANCH "VS_BRANCH"
156
#else
157
#define KVI_VERSION_BRANCH KVIRC_VERSION_BRANCH
158
#endif
159
160
#define KVI_RELEASE_NAME KVIRC_VERSION_CODENAME
161
162
// We want _GNU_SOURCE features
163
#ifndef _GNU_SOURCE
164
#define _GNU_SOURCE
165
#endif
166
167
#if defined(__GNUC__)
168
// gcc
169
#if __GNUC__ >= 3
170
#define KVI_PTR2MEMBER(__x) &__x
171
#else
172
#define KVI_PTR2MEMBER(__x) &(__x)
173
#endif
174
#elif defined(COMPILE_ON_WINDOWS)
175
// Visual C++
176
#define KVI_PTR2MEMBER(__x) &__x
177
#elif defined(__SUNPRO_CC)
178
// Sun Forte
179
#define KVI_PTR2MEMBER(__x) (__x)
180
#else
181
// default
182
#define KVI_PTR2MEMBER(__x) &(__x)
183
#endif
184
185
#define KVI_DEPRECATED
186
187
// Trust Qt about the current target processor endianness
188
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
189
#define BIG_ENDIAN_MACHINE_BYTE_ORDER
190
#else
191
#ifdef BIG_ENDIAN_MACHINE_BYTE_ORDER
192
#undef BIG_ENDIAN_MACHINE_BYTE_ORDER
193
#endif
194
#endif
195
196
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
197
#ifndef UNICODE
198
#define UNICODE
199
#endif
200
#ifndef _UNICODE
201
#define _UNICODE
202
#endif
203
#endif
204
205
#endif
//_KVI_SETTINGS_H_
Generated on Thu Aug 29 2024 11:04:00 for KVIrc by
1.9.8