old_contents: # Python program to set the version.
  ##############################################
  
  import re
  import sys
  
  def fileProcess( name, lineFunction ):
  	filestream = open( name, 'r' )
  	if filestream.closed:
  		print( "file " + name + " not open." )
  		return
  
  	output = ""
  	print( "--- Processing " + name + " ---------" )
  	while 1:
  		line = filestream.readline()
  		if not line: break
  		output += lineFunction( line )
  	filestream.close()
  	
  	if not output: return			# basic error checking
  	
  	print( "Writing file " + name )
  	filestream = open( name, "w" );
  	filestream.write( output );
  	filestream.close()
  	
  	
  def echoInput( line ):
  	return line
  
  major = input( "Major: " )
  minor = input( "Minor: " )
  build = input( "Build: " )
  
  print "Setting dox,tinyxml2.h"
  print "Version: " + `major` + "." + `minor` + "." + `build`
  
  #### Write the tinyxml.h ####
  
  def engineRule( line ):
  
  	matchMajor = "static const int TIXML2_MAJOR_VERSION"
  	matchMinor = "static const int TIXML2_MINOR_VERSION"
  	matchBuild = "static const int TIXML2_PATCH_VERSION"
  
  	if line[0:len(matchMajor)] == matchMajor:
  		print "1)tinyxml2.h Major found"
  		return matchMajor + " = " + `major` + ";\n"
  
  	elif line[0:len(matchMinor)] == matchMinor:
  		print "2)tinyxml2.h Minor found"
  		return matchMinor + " = " + `minor` + ";\n"
  
  	elif line[0:len(matchBuild)] == matchBuild:
  		print "3)tinyxml2.h Build found"
  		return matchBuild + " = " + `build` + ";\n"
  
  	else:
  		return line;
  
  fileProcess( "tinyxml2.h", engineRule )
  
  
  #### Write the dox ####
  
  def doxRule( line ):
  
  	match = "PROJECT_NUMBER"
  
  	if line[0:len( match )] == match:
  		print "dox project found"
  		return "PROJECT_NUMBER = " + `major` + "." + `minor` + "." + `build` + "\n"
  
  	else:
  		return line;
  
  fileProcess( "dox", doxRule )
  
  
new_contents: # Python program to set the version.
  ##############################################
  
  import re
  import sys
  
  def fileProcess( name, lineFunction ):
  	filestream = open( name, 'r' )
  	if filestream.closed:
  		print( "file " + name + " not open." )
  		return
  
  	output = ""
  	print( "--- Processing " + name + " ---------" )
  	while 1:
  		line = filestream.readline()
  		if not line: break
  		output += lineFunction( line )
  	filestream.close()
  	
  	if not output: return			# basic error checking
  	
  	print( "Writing file " + name )
  	filestream = open( name, "w" );
  	filestream.write( output );
  	filestream.close()
  	
  	
  def echoInput( line ):
  	return line
  
  major = input( "Major: " )
  minor = input( "Minor: " )
  build = input( "Build: " )
  
  print "Setting dox,tinyxml2.h"
  print "Version: " + `major` + "." + `minor` + "." + `build`
  
  #### Write the tinyxml.h ####
  
  def engineRule( line ):
  
  	matchMajor = "static const int TIXML2_MAJOR_VERSION"
  	matchMinor = "static const int TIXML2_MINOR_VERSION"
  	matchBuild = "static const int TIXML2_PATCH_VERSION"
  
  	if line[0:len(matchMajor)] == matchMajor:
  		print "1)tinyxml2.h Major found"
  		return matchMajor + " = " + `major` + ";\n"
  
  	elif line[0:len(matchMinor)] == matchMinor:
  		print "2)tinyxml2.h Minor found"
  		return matchMinor + " = " + `minor` + ";\n"
  
  	elif line[0:len(matchBuild)] == matchBuild:
  		print "3)tinyxml2.h Build found"
  		return matchBuild + " = " + `build` + ";\n"
  
  	else:
  		return line;
  
  fileProcess( "tinyxml2.h", engineRule )
  
  
  #### Write the dox ####
  
  def doxRule( line ):
  
  	match = "PROJECT_NUMBER"
  
  	if line[0:len( match )] == match:
  		print "dox project found"
  		return "PROJECT_NUMBER = " + `major` + "." + `minor` + "." + `build` + "\n"
  
  	else:
  		return line;
  
  fileProcess( "dox", doxRule )
  
  
  #### Write the CMakeLists.txt ####
  
  def cmakeRule1( line ):
  
  	matchVersion = "set(GENERIC_LIB_VERSION"
  
  	if line[0:len(matchVersion)] == matchVersion:
  		print "1)tinyxml2.h Major found"
  		return matchVersion + " \"" + `major` + "." + `minor` + "." + `build` + "\")" + "\n"
  
  	else:
  		return line;
  
  fileProcess( "CMakeLists.txt", cmakeRule1 )
  
  def cmakeRule2( line ):
  
  	matchSoversion = "set(GENERIC_LIB_SOVERSION"
  
  	if line[0:len(matchSoversion)] == matchSoversion:
  		print "1)tinyxml2.h Major found"
  		return matchSoversion + " \"" + `major` + "\")" + "\n"
  
  	else:
  		return line;
  
  fileProcess( "CMakeLists.txt", cmakeRule2 )
  
subject: Add rules for setversion.py to include CMakeLists.txt