]> git.saurik.com Git - wxWidgets.git/blobdiff - build/bakefiles/version.bkl
first character of a command in a make rule must be TAB (not space or #): fixes build...
[wxWidgets.git] / build / bakefiles / version.bkl
index 3e030788dff3eb4750931f525d7aa06f3b00bd63..0dab6e49bf6acd344b7253c2574dd2d222dfbf4d 100644 (file)
@@ -2,16 +2,30 @@
 <!-- $Id$ -->
 
 <makefile>
-    
+
     <!-- ================================================================== -->
     <!--                      Handling of binary compatiblity:              -->
     <!-- ================================================================== -->
 
-    <!-- this needs to be reset to 0 on beginning of stable series and
-         increment by one 1 every time binary incompatible change is made
-         (i.e. preferably never) -->
-    <set var="WX_BINARY_VERSION">0</set>
-    
+    <!--
+       We use libtool CURRENT:REVISION:AGE versioning scheme. Here are the
+       rules for updating the values below, this should be done whenever wx
+       version (wx/version.h) changes (we abbreviate WX_CURRENT:REVISION:AGE
+       as C:R:A respectively):
+
+       0. Set C:R:A = 0:0:0 if major or minor version has changed.
+
+       1. If any API has been removed or otherwise changed in backwards
+          incompatible way, then change C:R:A to C+1:0:0
+
+       2. Else, if any API has been added, change C:R:A to C+1:0:A+1
+
+       3. Else, i.e. if there were no changes at all to API but only internal
+          changes, change C:R:A to C:R+1:A
+    -->
+    <set var="WX_CURRENT">0</set>
+    <set var="WX_REVISION">0</set>
+    <set var="WX_AGE">0</set>
 
 
     <!-- ================================================================== -->
     </set>
 
     <set var="WX_STABLE_BRANCH">$(int(int(WXVER_MINOR) % 2 == 0))</set>
-    
+
+    <!-- in unstable branch, binary compat. changes with every release, check
+         for it: -->
+    <if cond="WX_STABLE_BRANCH=='0' and int(WX_CURRENT)!=int(WXVER_RELEASE)">
+        <error>Forgot to update WX_CURRENT/WX_REVISION/WX_AGE?</error>
+    </if>
     <set var="WXSOVERSION">
-        <if cond="WX_STABLE_BRANCH=='1'">$(WX_BINARY_VERSION).0.0</if>
-        <if cond="WX_STABLE_BRANCH=='0'">$(WXVER_RELEASE).0.0</if>
+        $(int(WX_CURRENT)-int(WX_AGE)).$(WX_AGE).$(WX_REVISION)
+    </set>
+
+    <!-- FIXME: until libtool scheme is implemented in bakefile -->
+    <set var="WXMACVERSION_CMD">
+        <if cond="PLATFORM_MACOSX=='1'">
+           <!-- Version can't be 0, so add 1 to it to force it to be non null -->
+            -compatibility_version $(int(WX_AGE)+1).0 -current_version $(int(WX_AGE)+1).$(WX_REVISION)
+        </if>
     </set>
-    <set var="WXMACVERSION">$(WX_VERSION)</set>
+
     <set var="WXWIN32DLLVERSION">
         <if cond="WX_STABLE_BRANCH=='1'">$(WX_RELEASE_NODOT)</if>
         <if cond="WX_STABLE_BRANCH=='0'">$(WX_VERSION_NODOT)</if>