41 #ifndef INCLUDED_GLS_VERSION_H
42 #define INCLUDED_GLS_VERSION_H
62 #define GLS_VERSION_MAJOR 7
63 #define GLS_VERSION_MINOR 0
64 #define GLS_VERSION_BUILD 0000
66 #define GLS_STRINGIZE(x) #x
67 #define GLS_STRINGIZE_VALUE(x) GLS_STRINGIZE(x)
70 #define GLS_VERSION_1(a,b) GLS_STRINGIZE(a.b)
71 #define GLS_VERSION GLS_VERSION_1(GLS_VERSION_MAJOR, GLS_VERSION_MINOR)
73 #define GLS_LICENSE_VERSION GLS_VERSION_1(GLS_VERSION_MAJOR, 0)
76 #define GLS_BUILD_VERSION GLS_STRINGIZE_VALUE(GLS_VERSION_BUILD)
80 #if !defined(GLS_COMPILER_VERSION)
82 # pragma message("Warning (gls_version.h): Unrecognized compiler version")
83 # define GLS_COMPILER_VERSION vcXX
86 # pragma message("Warning (gls_version.h): Unrecognized compiler version")
87 # define GLS_COMPILER_VERSION vcXX
88 # elif _MSC_VER < 1800
89 # define GLS_COMPILER_VERSION vc110
90 # elif _MSC_VER < 1900
91 # define GLS_COMPILER_VERSION vc120
92 # elif _MSC_VER < 1910
93 # define GLS_COMPILER_VERSION vc140
94 # elif _MSC_VER < 2000
95 # define GLS_COMPILER_VERSION vc141
97 # pragma message("Warning (gls_version.h): Unrecognized compiler version")
98 # define GLS_COMPILER_VERSION vcXX
108 #define GLS_CRT_VERSION_INT_MD 0x06000000 // MT + DLL
109 #define GLS_CRT_VERSION_INT_MT 0x02000000 // MT
110 #define GLS_CRT_VERSION_INT_ML 0x01000000 // ML
111 #define GLS_CRT_VERSION_INT_MDD 0x0E000000 // DEBUG + MT + DLL
112 #define GLS_CRT_VERSION_INT_MTD 0x0A000000 // DEBUG + MT
113 #define GLS_CRT_VERSION_INT_MLD 0x09000000 // DEBUG + ML
115 #define GLS_CRT_VERSION_INT_MD_64 0x16000000 // MT + DLL
116 #define GLS_CRT_VERSION_INT_MT_64 0x12000000 // MT
117 #define GLS_CRT_VERSION_INT_ML_64 0x11000000 // ML
118 #define GLS_CRT_VERSION_INT_MDD_64 0x1E000000 // DEBUG + MT + DLL
119 #define GLS_CRT_VERSION_INT_MTD_64 0x1A000000 // DEBUG + MT
120 #define GLS_CRT_VERSION_INT_MLD_64 0x19000000 // DEBUG + ML
122 #if !defined(GLS_CRT_VERSION)
127 # define GLS_CRT_VERSION _64mdd
128 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MDD_64
130 # define GLS_CRT_VERSION mdd
131 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MDD
135 # define GLS_CRT_VERSION _64mtd
136 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MTD_64
138 # define GLS_CRT_VERSION mtd
139 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MTD
144 # define GLS_CRT_VERSION _64mld
145 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MLD_64
147 # define GLS_CRT_VERSION mld
148 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MLD
155 # define GLS_CRT_VERSION _64md
156 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MD_64
158 # define GLS_CRT_VERSION md
159 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MD
163 # define GLS_CRT_VERSION _64mt
164 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MT_64
166 # define GLS_CRT_VERSION mt
167 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_MT
172 # define GLS_CRT_VERSION _64ml
173 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_ML_64
175 # define GLS_CRT_VERSION ml
176 # define GLS_CRT_VERSION_INT GLS_CRT_VERSION_INT_ML
183 #define GLS_CHECK_VERSION_ID_2( a, b, c, d, e ) GLS_VERSION_##a##_##b##_##c##_##d##_##e // Complete check
184 #define GLS_CHECK_VERSION_ID_1( v1, v2, v3, c1, c2 ) GLS_CHECK_VERSION_ID_2( v1, v2, v3, c1, c2 )
185 #define GLS_CHECK_VERSION_ID GLS_CHECK_VERSION_ID_1( GLS_VERSION_MAJOR, GLS_VERSION_MINOR, GLS_VERSION_BUILD, GLS_COMPILER_VERSION, GLS_CRT_VERSION )
190 #define GLS_CHECK_VERSION_ID_2( a, b, c ) GLS_VERSION_##a##_##b##_##c##_LIBRARY
191 #define GLS_CHECK_VERSION_ID_1( v1, v2, v3 ) GLS_CHECK_VERSION_ID_2( v1, v2, v3 )
192 #define GLS_CHECK_VERSION_ID GLS_CHECK_VERSION_ID_1( GLS_VERSION_MAJOR, GLS_VERSION_MINOR, GLS_VERSION_BUILD )
197 GLS_EXPORT
void GLS_CHECK_VERSION_ID();
212 int _compilerVersion;
215 int glsMajor = GLS_VERSION_MAJOR,
216 int glsMinor = GLS_VERSION_MINOR,
217 int glsBuild = GLS_VERSION_BUILD,
218 #
if defined(_MSC_VER)
219 int compilerVersion = _MSC_VER + GLS_CRT_VERSION_INT )
220 #elif defined(__GNUC__)
221 int compilerVersion = __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
223 int compilerVersion = 0)
226 _glsMajor = glsMajor;
227 _glsMinor = glsMinor;
228 _glsBuild = glsBuild;
229 _compilerVersion = compilerVersion;
237 inline bool GlsBuiltVersionsMatchExactly(
const GlsBuiltVersionInfo& a,
const GlsBuiltVersionInfo& b)
239 return a._glsMajor == b._glsMajor &&
240 a._glsMinor == b._glsMinor &&
241 a._glsBuild == b._glsBuild &&
242 a._compilerVersion == b._compilerVersion;
247 inline bool GlsBuiltVersionsAreBinaryCompatible(
const GlsBuiltVersionInfo& a,
const GlsBuiltVersionInfo& b)
249 bool compiler_compatible = (a._compilerVersion == b._compilerVersion);
251 #if defined(__GNUC__)
253 if (!compiler_compatible)
255 if (a._compilerVersion >= 30400 && b._compilerVersion >= 30400 )
259 compiler_compatible =
true;
266 return (compiler_compatible &&
267 a._glsMajor == b._glsMajor &&
268 a._glsMinor == b._glsMinor &&
269 a._glsBuild/1000 == b._glsBuild/1000 );
A file for all GL Studio files to include.
Definition: gls_version.h:206
Definition: bmpimage.h:46