From 448038b9c166d2fff3fd14e0f73a32da98223fc1 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 2 Feb 2017 09:36:29 +0100 Subject: [PATCH] Fix line-endings in generated C++ wrapper on Windows. --- wrappers/cpp/genwrapper.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/wrappers/cpp/genwrapper.py b/wrappers/cpp/genwrapper.py index fd549f2af..011cc1fdf 100755 --- a/wrappers/cpp/genwrapper.py +++ b/wrappers/cpp/genwrapper.py @@ -637,6 +637,17 @@ class CMakeLists(object): self.interfaces = [] +def render(renderer, item, path): + tmppath = path + '.tmp' + content = '' + with open(tmppath, mode='w') as f: + f.write(renderer.render(item)) + with open(tmppath, mode='rU') as f: + content = f.read() + with open(path, mode='w') as f: + f.write(content) + os.unlink(tmppath) + def main(): argparser = argparse.ArgumentParser(description='Generate source files for the C++ wrapper') argparser.add_argument('xmldir', type=str, help='Directory where the XML documentation of the Linphone\'s API generated by Doxygen is placed') @@ -665,8 +676,7 @@ def main(): else: print('warning: {0} enum won\'t be translated because of parsing errors'.format(item[0])) - with open(args.outputdir + '/include/enums.hh', mode='w') as f: - f.write(renderer.render(header)) + render(renderer, header, args.outputdir + '/include/enums.hh') mainHeader = MainHeader() cmakelists = CMakeLists() @@ -686,21 +696,17 @@ def main(): else: cmakelists.interfaces.append({'header': headerName}) - with open(args.outputdir + '/include/' + header.filename, mode='w') as f: - f.write(renderer.render(header)) + render(renderer, header, args.outputdir + '/include/' + header.filename) if type(_class) is AbsApi.Class: - with open(args.outputdir + '/src/' + impl.filename, mode='w') as f: - f.write(renderer.render(impl)) + render(renderer, impl, args.outputdir + '/src/' + impl.filename) except AbsApi.Error as e: print('Could not translate {0}: {1}'.format(_class.name.to_camel_case(fullName=True), e.args[0])) - with open(args.outputdir + '/include/linphone.hh', mode='w') as f: - f.write(renderer.render(mainHeader)) + render(renderer, mainHeader, args.outputdir + '/include/linphone.hh') - with open(args.outputdir + '/CMakeLists.txt', mode='w') as f: - f.write(renderer.render(cmakelists)) + render(renderer, cmakelists, args.outputdir + '/CMakeLists.txt') if __name__ == '__main__':