summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2025-03-29 21:03:18 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2025-03-29 21:03:18 +0100
commitcb86a37676e26a8de209a371132d8154986b457a (patch)
treeeec1f087ee495a4d6b6af48b4913f754bb4633ba
parent9e1e043af35e979f5ad0824fb74f6e7fab57be7d (diff)
Allow FL_ABI_VERSION = FL_API_VERSION + 1
... so users can enable ABI features designated for the *next* release when using FLTK from Git (or snapshots) before the API version has been raised for that release.
-rw-r--r--FL/Enumerations.H14
-rw-r--r--README.abi-version.txt5
2 files changed, 14 insertions, 5 deletions
diff --git a/FL/Enumerations.H b/FL/Enumerations.H
index 1a8b219bd..2478a8c58 100644
--- a/FL/Enumerations.H
+++ b/FL/Enumerations.H
@@ -153,11 +153,15 @@
This is done to prevent users from defining an illegal ABI version.
Rule: FL_MAJOR_VERSION * 10000 + FL_MINOR_VERSION * 100
- <= FL_ABI_VERSION <= FL_API_VERSION.
+ <= FL_ABI_VERSION <= FL_API_VERSION + 1.
- Example (FLTK 1.3.4):
+ Since FLTK 1.4.2+ (Git commits after release 1.4.2) FL_ABI_VERSION is
+ allowed to be one higher than FL_API_VERSION so ABI changes in Git
+ targeted at the *next* release (e.g. 1.4.3) can be used.
- 10300 <= FL_ABI_VERSION <= 10304
+ Example: Commits after release FLTK 1.4.2 (before release 1.4.3):
+
+ 10400 <= FL_ABI_VERSION <= 10403
Note: configure + CMake can be used to define FL_ABI_VERSION, but they
do not check validity. This is done here.
@@ -168,10 +172,10 @@
# undef FL_ABI_VERSION
# define FL_ABI_VERSION (FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100)
-#elif FL_ABI_VERSION > FL_API_VERSION
+#elif FL_ABI_VERSION > FL_API_VERSION + 1
# undef FL_ABI_VERSION
-# define FL_ABI_VERSION FL_API_VERSION
+# define FL_ABI_VERSION FL_API_VERSION + 1
#endif
diff --git a/README.abi-version.txt b/README.abi-version.txt
index f6a87019f..10729a959 100644
--- a/README.abi-version.txt
+++ b/README.abi-version.txt
@@ -45,6 +45,11 @@ The default ABI version is always the lowest version (e.g. 10400). All
following examples are written for FLTK 1.4.1, hence we use "10401" for
the version number.
+Note: Since FLTK 1.4.3 (Git branch-1.4 after release 1.4.2) the highest
+selectable ABI version is FL_API_VERSION + 1 so you can use ABI features
+designated for the *next* FLTK release when using FLTK from Git with new
+ABI features included for the next release.
+
How to select the ABI version with CMake
----------------------------------------