@@ -76,7 +76,10 @@ def topaddedversionstring(major, minor, rev):
7676else :
7777 assert newversion [2 ] == currentv [2 ] + 1
7878
79+ atleastminor = (currentv [0 ] != newversion [0 ]) or (currentv [1 ] != newversion [1 ])
7980
81+ if (atleastminor ):
82+ print ("This is more than a revision." )
8083
8184versionfilerel = os .sep + "include" + os .sep + "simdjson" + os .sep + "simdjson_version.h"
8285versionfile = maindir + versionfilerel
@@ -114,17 +117,35 @@ def topaddedversionstring(major, minor, rev):
114117import fileinput
115118import re
116119
120+
117121newmajorversionstring = str (newversion [0 ])
118122mewminorversionstring = str (newversion [1 ])
119123newrevversionstring = str (newversion [2 ])
120124newversionstring = str (newversion [0 ]) + "." + str (newversion [1 ]) + "." + str (newversion [2 ])
121125cmakefile = maindir + os .sep + "CMakeLists.txt"
126+
127+ sonumber = None
128+ pattern = re .compile ("set\(SIMDJSON_LIB_SOVERSION \" (\d+)\" CACHE STRING \" simdjson library soversion\" \)" )
129+ with open (cmakefile , 'rt' ) as myfile :
130+ for line in myfile :
131+ m = pattern .search (line )
132+ if m != None :
133+ sonumber = int (m .group (1 ))
134+ break
135+ print ("so library number " + str (sonumber ))
136+
137+ if (atleastminor ):
138+ print ("Given that we have a minor revision, it seems necessary to bump the so library number" )
139+ print ("See https://github.com/simdjson/simdjson/issues/661" )
140+ sonumber += 1
141+
122142for line in fileinput .input (cmakefile , inplace = 1 , backup = '.bak' ):
123143 line = re .sub ('SIMDJSON_LIB_VERSION "\d+\.\d+\.\d+' ,'SIMDJSON_LIB_VERSION "' + newversionstring , line .rstrip ())
124144 line = re .sub ('SIMDJSON_LIB_SOVERSION "\d+' ,'SIMDJSON_LIB_SOVERSION "' + newmajorversionstring , line )
125145 line = re .sub ('set\(PROJECT_VERSION_MAJOR \d+' ,'set(PROJECT_VERSION_MAJOR ' + newmajorversionstring , line )
126146 line = re .sub ('set\(PROJECT_VERSION_MINOR \d+' ,'set(PROJECT_VERSION_MINOR ' + mewminorversionstring , line )
127147 line = re .sub ('set\(PROJECT_VERSION_PATCH \d+' ,'set(PROJECT_VERSION_PATCH ' + newrevversionstring , line )
148+ line = re .sub ('set\(SIMDJSON_LIB_SOVERSION \" \d+\" ' ,'set(SIMDJSON_LIB_SOVERSION \" ' + str (sonumber )+ '\" ' , line )
128149 print (line )
129150
130151
0 commit comments