diff options
| author | Phil Nash | 2015-06-29 18:05:23 +0100 |
|---|---|---|
| committer | Phil Nash | 2015-06-29 18:06:15 +0100 |
| commit | 21f7ef6fdcfcc98fa668028c02ba51643982e7cf (patch) | |
| tree | bdf6b9ca32777405feeefa8a6f5e34481fe6f468 /scripts/generateSingleHeader.py | |
| parent | f5fef1ebed9faaf12058d7a16223b4f617e6a5b6 (diff) | |
| download | catch3-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.py | 93 |
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() ) ) |