Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/scripts/generateSingleHeader.py
diff options
context:
space:
mode:
authorPhil Nash2015-06-29 18:05:23 +0100
committerPhil Nash2015-06-29 18:06:15 +0100
commit21f7ef6fdcfcc98fa668028c02ba51643982e7cf (patch)
treebdf6b9ca32777405feeefa8a6f5e34481fe6f468 /scripts/generateSingleHeader.py
parentf5fef1ebed9faaf12058d7a16223b4f617e6a5b6 (diff)
downloadcatch3-1.2.0.tar.gz
Committed to semantic versioningv1.2.0
as prompted by #365, #430, #447 and a thread on the google group. - split version bumping out of generateSingleHeader script - separate scripts for bumping each version component - "build" number only incremented for "develop" builds
Diffstat (limited to 'scripts/generateSingleHeader.py')
-rw-r--r--scripts/generateSingleHeader.py93
1 files changed, 20 insertions, 73 deletions
diff --git a/scripts/generateSingleHeader.py b/scripts/generateSingleHeader.py
index cd97010f..419633f8 100644
--- a/scripts/generateSingleHeader.py
+++ b/scripts/generateSingleHeader.py
@@ -7,8 +7,9 @@ import datetime
import string
from scriptCommon import catchPath
+from releaseCommon import Version
+
-versionParser = re.compile( r'(\s*Version\slibraryVersion)\s*\(\s*(.*)\s*,\s*(.*)\s*,\s*(.*)\s*,\s*\"(.*)\"\s*\).*' )
includesParser = re.compile( r'\s*#include\s*"(.*)"' )
guardParser = re.compile( r'\s*#.*TWOBLUECUBES_CATCH_.*_INCLUDED')
defineParser = re.compile( r'\s*#define')
@@ -20,22 +21,15 @@ commentParser2 = re.compile( r'^ \*')
blankParser = re.compile( r'^\s*$')
seenHeaders = set([])
rootPath = os.path.join( catchPath, 'include/' )
-versionPath = os.path.join( rootPath, "internal/catch_version.hpp" )
-readmePath = os.path.join( catchPath, "README.md" )
outputPath = os.path.join( catchPath, 'single_include/catch.hpp' )
-bumpVersion = True
includeImpl = True
for arg in sys.argv[1:]:
arg = string.lower(arg)
- if arg == "nobump":
- bumpVersion = False
- print( "Not bumping version number" )
- elif arg == "noimpl":
+ if arg == "noimpl":
includeImpl = False
- bumpVersion = False
- print( "Not including impl code (and not bumping version)" )
+ print( "Not including impl code" )
else:
print( "\n** Unrecognised argument: " + arg + " **\n" )
exit(1)
@@ -87,70 +81,23 @@ def parseFile( path, filename ):
if blanks < 2:
write( line.rstrip() + "\n" )
-class Version:
- def __init__(self):
- f = open( versionPath, 'r' )
- for line in f:
- m = versionParser.match( line )
- if m:
- self.variableDecl = m.group(1)
- self.majorVersion = int(m.group(2))
- self.minorVersion = int(m.group(3))
- self.buildNumber = int(m.group(4))
- self.branchName = m.group(5)
- f.close()
-
- def incrementBuildNumber(self):
- self.buildNumber = self.buildNumber+1
-
- def updateVersionFile(self):
- f = open( versionPath, 'r' )
- lines = []
- for line in f:
- m = versionParser.match( line )
- if m:
- lines.append( '{0}( {1}, {2}, {3}, "{4}" );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
- else:
- lines.append( line.rstrip() )
- f.close()
- f = open( versionPath, 'w' )
- for line in lines:
- f.write( line + "\n" )
-
- def updateReadmeFile(self):
- f = open( readmePath, 'r' )
- lines = []
- for line in f:
- lines.append( line.rstrip() )
- f.close()
- f = open( readmePath, 'w' )
- for line in lines:
- if line.startswith( "*v" ):
- f.write( '*v{0}.{1} build {2} ({3} branch)*\n'.format( self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
- else:
- f.write( line + "\n" )
-def generateSingleInclude():
- v = Version()
- if bumpVersion:
- v.incrementBuildNumber()
- v.updateVersionFile()
- v.updateReadmeFile()
- out.write( "/*\n" )
- out.write( " * CATCH v{0}.{1} build {2} ({3} branch)\n".format( v.majorVersion, v.minorVersion, v.buildNumber, v.branchName ) )
- out.write( " * Generated: {0}\n".format( datetime.datetime.now() ) )
- out.write( " * ----------------------------------------------------------\n" )
- out.write( " * This file has been merged from multiple headers. Please don't edit it directly\n" )
- out.write( " * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" )
- out.write( " *\n" )
- out.write( " * Distributed under the Boost Software License, Version 1.0. (See accompanying\n" )
- out.write( " * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" )
- out.write( " */\n" )
- out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
- out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
+v = Version()
+out.write( "/*\n" )
+out.write( " * Catch v{0}\n".format( v.getVersionString() ) )
+out.write( " * Generated: {0}\n".format( datetime.datetime.now() ) )
+out.write( " * ----------------------------------------------------------\n" )
+out.write( " * This file has been merged from multiple headers. Please don't edit it directly\n" )
+out.write( " * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" )
+out.write( " *\n" )
+out.write( " * Distributed under the Boost Software License, Version 1.0. (See accompanying\n" )
+out.write( " * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" )
+out.write( " */\n" )
+out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
+out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
- parseFile( rootPath, 'catch.hpp' )
+parseFile( rootPath, 'catch.hpp' )
- out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" )
+out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" )
-generateSingleInclude()
+print ("Generated single include for Catch v{0}\n".format( v.getVersionString() ) )