From f861b35c82fc6ec94442a34c89395f96c9138781 Mon Sep 17 00:00:00 2001 From: Fabio Pellacini Date: Wed, 23 Jun 2021 07:24:28 +0200 Subject: [PATCH] Added analgamation script --- CONTRIBUTORS | 1 + script/amalgamate.py | 56 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 script/amalgamate.py diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7ca4c7d..58a037c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3,3 +3,4 @@ Maksim Kita Marcin Wojdyr Neal Richardson Tim Paine +Fabio Pellacini diff --git a/script/amalgamate.py b/script/amalgamate.py new file mode 100644 index 0000000..f4896e9 --- /dev/null +++ b/script/amalgamate.py @@ -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)