1 /* 2 * Name: wx/version.h 3 * Purpose: wxWidgets version numbers 4 * Author: Julian Smart 5 * Modified by: Ryan Norton (Converted to C) 6 * Created: 29/01/98 7 * RCS-ID: $Id: version.h 66910 2011-02-16 20:53:53Z JS $ 8 * Copyright: (c) 1998 Julian Smart 9 * Licence: wxWindows licence 10 */ 11 12 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ 13 14 #ifndef _WX_VERSION_H_ 15 #define _WX_VERSION_H_ 16 17 #include "wx/cpp.h" /* for wxSTRINGIZE */ 18 19 /* the constants below must be changed with each new version */ 20 /* ---------------------------------------------------------------------------- */ 21 22 /* 23 Don't forget to update WX_CURRENT, WX_REVISION and WX_AGE in 24 build/bakefiles/version.bkl and regenerate the makefiles when you change 25 this! 26 */ 27 28 /* NB: this file is parsed by automatic tools so don't change its format! */ 29 #define wxMAJOR_VERSION 2 30 #define wxMINOR_VERSION 8 31 #define wxRELEASE_NUMBER 12 32 #define wxSUBRELEASE_NUMBER 0 33 #define wxVERSION_STRING wxT("wxWidgets 2.8.12") 34 35 /* nothing to update below this line when updating the version */ 36 /* ---------------------------------------------------------------------------- */ 37 38 /* Users can pre-define wxABI_VERSION to a lower value in their 39 * makefile/project settings to compile code that will be binary compatible 40 * with earlier versions of the ABI within the same minor version (between 41 * minor versions binary compatibility breaks anyway). The default is the 42 * version of wxWidgets being used. A single number with two decimal digits 43 * for each component, e.g. 20601 for 2.6.1 */ 44 #ifndef wxABI_VERSION 45 #define wxABI_VERSION ( wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + 99 ) 46 #endif 47 48 /* helpers for wxVERSION_NUM_XXX */ 49 #define wxMAKE_VERSION_STRING(x, y, z) \ 50 wxSTRINGIZE(x) wxSTRINGIZE(y) wxSTRINGIZE(z) 51 #define wxMAKE_VERSION_DOT_STRING(x, y, z) \ 52 wxSTRINGIZE(x) "." wxSTRINGIZE(y) "." wxSTRINGIZE(z) 53 54 #define wxMAKE_VERSION_STRING_T(x, y, z) \ 55 wxSTRINGIZE_T(x) wxSTRINGIZE_T(y) wxSTRINGIZE_T(z) 56 #define wxMAKE_VERSION_DOT_STRING_T(x, y, z) \ 57 wxSTRINGIZE_T(x) wxT(".") wxSTRINGIZE_T(y) wxT(".") wxSTRINGIZE_T(z) 58 59 /* these are used by src/msw/version.rc and should always be ASCII, not Unicode */ 60 #define wxVERSION_NUM_STRING \ 61 wxMAKE_VERSION_STRING(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) 62 #define wxVERSION_NUM_DOT_STRING \ 63 wxMAKE_VERSION_DOT_STRING(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) 64 65 /* those are Unicode-friendly */ 66 #define wxVERSION_NUM_STRING_T \ 67 wxMAKE_VERSION_STRING_T(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) 68 #define wxVERSION_NUM_DOT_STRING_T \ 69 wxMAKE_VERSION_DOT_STRING_T(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) 70 71 /* some more defines, not really sure if they're [still] useful */ 72 #define wxVERSION_NUMBER ( (wxMAJOR_VERSION * 1000) + (wxMINOR_VERSION * 100) + wxRELEASE_NUMBER ) 73 #define wxBETA_NUMBER 0 74 #define wxVERSION_FLOAT ( wxMAJOR_VERSION + (wxMINOR_VERSION/10.0) + (wxRELEASE_NUMBER/100.0) + (wxBETA_NUMBER/10000.0) ) 75 76 /* check if the current version is at least major.minor.release */ 77 #define wxCHECK_VERSION(major,minor,release) \ 78 (wxMAJOR_VERSION > (major) || \ 79 (wxMAJOR_VERSION == (major) && wxMINOR_VERSION > (minor)) || \ 80 (wxMAJOR_VERSION == (major) && wxMINOR_VERSION == (minor) && wxRELEASE_NUMBER >= (release))) 81 82 /* the same but check the subrelease also */ 83 #define wxCHECK_VERSION_FULL(major,minor,release,subrel) \ 84 (wxCHECK_VERSION(major, minor, release) && \ 85 ((major) != wxMAJOR_VERSION || \ 86 (minor) != wxMINOR_VERSION || \ 87 (release) != wxRELEASE_NUMBER || \ 88 (subrel) <= wxSUBRELEASE_NUMBER)) 89 90 #endif /* _WX_VERSION_H_ */ 91 92