Added analgamation script

This commit is contained in:
Fabio Pellacini 2021-06-23 07:24:28 +02:00
parent 8159e8bcf6
commit f861b35c82
2 changed files with 57 additions and 0 deletions

View File

@ -3,3 +3,4 @@ Maksim Kita
Marcin Wojdyr
Neal Richardson
Tim Paine
Fabio Pellacini

56
script/amalgamate.py Normal file
View File

@ -0,0 +1,56 @@
# text parts
processed_files = { }
# authors
for filename in ['AUTHORS', 'CONTRIBUTORS']:
with open(filename) as f:
text = ''
for line in f:
if filename == 'AUTHORS':
text += '// fast_float by ' + line
if filename == 'CONTRIBUTORS':
text += '// with contributions from ' + line
processed_files[filename] = text
# licenses
for filename in ['LICENSE-MIT', 'LICENSE-APACHE']:
with open(filename) as f:
text = ''
for line in f:
text += '// ' + line
processed_files[filename] = text
# code
for filename in [ 'fast_float.h', 'float_common.h', 'ascii_number.h',
'fast_table.h', 'decimal_to_binary.h', 'ascii_number.h',
'simple_decimal_conversion.h', 'parse_number.h']:
with open('include/fast_float/' + filename) as f:
text = ''
for line in f:
if line.startswith('#include "'): continue
text += line
processed_files[filename] = text
# command line
import argparse
parser = argparse.ArgumentParser(description='Amalgamate fast_float.')
parser.add_argument('--license', default='MIT', help='choose license')
parser.add_argument('--output', default='', help='output file (stdout if none')
args = parser.parse_args()
text = '\n\n'.join([
processed_files['AUTHORS'], processed_files['CONTRIBUTORS'],
processed_files['LICENSE-' + args.license],
processed_files['fast_float.h'], processed_files['float_common.h'],
processed_files['ascii_number.h'], processed_files['fast_table.h'],
processed_files['decimal_to_binary.h'], processed_files['ascii_number.h'],
processed_files['simple_decimal_conversion.h'],
processed_files['parse_number.h']])
if args.output:
with open(args.output, 'wt') as f:
f.write(text)
else:
print(text)