mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Add CATCH_VERSION_* defines for external use
I wonder how much use they will actually see, but their cost is fairly minor. Closes #1131
This commit is contained in:
parent
ca2455e6e6
commit
44dbda9f01
@ -106,6 +106,20 @@ int main( int argc, char* argv[] )
|
||||
|
||||
See the [Clara documentation](https://github.com/philsquared/Clara/blob/master/README.md) for more details.
|
||||
|
||||
|
||||
## Version detection
|
||||
|
||||
Catch provides a triplet of macros providing the header's version,
|
||||
|
||||
* `CATCH_VERSION_MAJOR`
|
||||
* `CATCH_VERSION_MINOR`
|
||||
* `CATCH_VERSION_PATCH`
|
||||
|
||||
these macros expand into a single number, that corresponds to the appropriate
|
||||
part of the version. As an example, given single header version v2.3.4,
|
||||
the macros would expand into `2`, `3`, and `4` respectively.
|
||||
|
||||
|
||||
---
|
||||
|
||||
[Home](Readme.md#top)
|
||||
|
@ -9,6 +9,9 @@
|
||||
#ifndef TWOBLUECUBES_CATCH_HPP_INCLUDED
|
||||
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
|
||||
|
||||
#define CATCH_VERSION_MAJOR 2
|
||||
#define CATCH_VERSION_MINOR 1
|
||||
#define CATCH_VERSION_PATCH 1
|
||||
|
||||
#ifdef __clang__
|
||||
# pragma clang system_header
|
||||
|
@ -10,6 +10,7 @@ from scriptCommon import catchPath
|
||||
versionParser = re.compile( r'(\s*static\sVersion\sversion)\s*\(\s*(.*)\s*,\s*(.*)\s*,\s*(.*)\s*,\s*\"(.*)\"\s*,\s*(.*)\s*\).*' )
|
||||
rootPath = os.path.join( catchPath, 'include/' )
|
||||
versionPath = os.path.join( rootPath, "internal/catch_version.cpp" )
|
||||
definePath = os.path.join(rootPath, 'catch.hpp')
|
||||
readmePath = os.path.join( catchPath, "README.md" )
|
||||
conanPath = os.path.join(catchPath, 'conanfile.py')
|
||||
conanTestPath = os.path.join(catchPath, 'test_package', 'conanfile.py')
|
||||
@ -137,10 +138,27 @@ def updateCmakeFile(version):
|
||||
else:
|
||||
file.write(line)
|
||||
|
||||
|
||||
def updateVersionDefine(version):
|
||||
with open(definePath, 'r') as file:
|
||||
lines = file.readlines()
|
||||
with open(definePath, 'w') as file:
|
||||
for line in lines:
|
||||
if '#define CATCH_VERSION_MAJOR' in line:
|
||||
file.write('#define CATCH_VERSION_MAJOR {}\n'.format(version.majorVersion))
|
||||
elif '#define CATCH_VERSION_MINOR' in line:
|
||||
file.write('#define CATCH_VERSION_MINOR {}\n'.format(version.minorVersion))
|
||||
elif '#define CATCH_VERSION_PATCH' in line:
|
||||
file.write('#define CATCH_VERSION_PATCH {}\n'.format(version.patchNumber))
|
||||
else:
|
||||
file.write(line)
|
||||
|
||||
|
||||
def performUpdates(version):
|
||||
# First update version file, so we can regenerate single header and
|
||||
# have it ready for upload to wandbox, when updating readme
|
||||
version.updateVersionFile()
|
||||
updateVersionDefine(version)
|
||||
|
||||
import generateSingleHeader
|
||||
generateSingleHeader.generate(version)
|
||||
|
Loading…
Reference in New Issue
Block a user