X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=extras%2Fgen-babeltrace-h.py;fp=extras%2Fgen-babeltrace-h.py;h=0000000000000000000000000000000000000000;hp=b83f262a8bee4b621d51820e6138dc96ed1b1960;hb=4fa90f321f51af8f5bfc48eee1435e2f41d853b3;hpb=924dc299c8a893e92fcd985fa05c245b591ef314 diff --git a/extras/gen-babeltrace-h.py b/extras/gen-babeltrace-h.py deleted file mode 100644 index b83f262a..00000000 --- a/extras/gen-babeltrace-h.py +++ /dev/null @@ -1,105 +0,0 @@ -import re - - -class _Section: - def __init__(self, title, filenames): - self.title = title - self.filenames = filenames - - -def _get_sections(file): - sections = [] - cur_title = None - cur_filenames = [] - - for line in file: - m = re.match(r'^# (.+API.*)$', line) - - if m: - if cur_filenames: - sections.append(_Section(cur_title, cur_filenames)) - cur_title = None - cur_filenames = [] - - cur_title = m.group(1) - continue - - m = re.match(r'^\s+(babeltrace2/.+\.h).*$', line) - - if m: - if m.group(1) != 'babeltrace2/babeltrace.h': - cur_filenames.append(m.group(1)) - - continue - - if re.match(r'^noinst_HEADERS.*', line): - break - - if cur_filenames: - sections.append(_Section(cur_title, cur_filenames)) - - return sections - - -def _c_includes_from_sections(sections): - src = '' - - for section in sections: - # CTF writer is not part of the Babeltrace library - if 'ctf' in section.title.lower(): - continue - - src += '/* {} */\n'.format(section.title) - lines = [] - - for filename in sorted(section.filenames): - # not part of the API - if 'func-status' in filename: - continue - - lines.append('#include <{}>\n'.format(filename)) - - lines.sort() - src += ''.join(lines) - src += '\n' - - return src[:-1] - - -def _main(): - with open('include/Makefile.am') as f: - sections = _get_sections(f) - - print('''#ifndef BABELTRACE2_BABELTRACE_H -#define BABELTRACE2_BABELTRACE_H - -/* - * Babeltrace API - * - * Copyright 2010-2018 EfficiOS Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -''') - print(_c_includes_from_sections(sections)) - print('#endif /* BABELTRACE2_BABELTRACE_H */') - - -if __name__ == '__main__': - _main()