diff --git a/include/wx/version.h b/include/wx/version.h index 0eb62becaf..bec1dea2f6 100644 --- a/include/wx/version.h +++ b/include/wx/version.h @@ -28,6 +28,19 @@ /* nothing to update below this line when updating the version */ /* ---------------------------------------------------------------------------- */ +/* Users can pre-define wxABI_VERSION to a lower value in their + * makefile/project settings to compile code that will be binary compatible + * with earlier versions of the ABI within the same minor version (between + * minor versions binary compatibility breaks anyway). The default is the + * version of wxWidgets being used. A single number with two decimal digits + * for each component, e.g. 20601 for 2.6.1 */ +#ifndef wxABI_VERSION +#define wxABI_VERSION ( \ + wxMAJOR_VERSION * 10000 + \ + wxMINOR_VERSION * 100 + \ + wxRELEASE_NUMBER ) +#endif + /* helpers for wxVERSION_NUM_XXX */ #define wxSTRINGIZE(x) #x #define wxMAKE_VERSION_STRING(x, y, z) \ diff --git a/src/common/appbase.cpp b/src/common/appbase.cpp index 0892aab62d..e01600229f 100644 --- a/src/common/appbase.cpp +++ b/src/common/appbase.cpp @@ -9,6 +9,13 @@ // License: wxWindows license /////////////////////////////////////////////////////////////////////////////// +// wxABI_VERSION can be defined when compiling applications but it should be +// left undefined when compiling the library itself, it is then set to the +// library's current version in version.h +#ifdef wxABI_VERSION +#error "wxABI_VERSION should not be defined when compiling the library" +#endif + // ============================================================================ // declarations // ============================================================================