| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/env python3
- """This script splits httplib.h into .h and .cc parts."""
- import argparse
- import os
- import sys
- border = '// ----------------------------------------------------------------------------'
- args_parser = argparse.ArgumentParser(description=__doc__)
- args_parser.add_argument(
- "-e", "--extension", help="extension of the implementation file (default: cc)",
- default="cc"
- )
- args_parser.add_argument(
- "-o", "--out", help="where to write the files (default: out)", default="out"
- )
- args = args_parser.parse_args()
- cur_dir = os.path.dirname(sys.argv[0])
- with open(cur_dir + '/httplib.h') as f:
- lines = f.readlines()
- python_version = sys.version_info[0]
- if python_version < 3:
- os.makedirs(args.out)
- else:
- os.makedirs(args.out, exist_ok=True)
- in_implementation = False
- h_out = args.out + '/httplib.h'
- cc_out = args.out + '/httplib.' + args.extension
- with open(h_out, 'w') as fh, open(cc_out, 'w') as fc:
- fc.write('#include "httplib.h"\n')
- fc.write('namespace httplib {\n')
- for line in lines:
- is_border_line = border in line
- if is_border_line:
- in_implementation = not in_implementation
- elif in_implementation:
- fc.write(line.replace('inline ', ''))
- else:
- fh.write(line)
- fc.write('} // namespace httplib\n')
- print("Wrote {} and {}".format(h_out, cc_out))
|