2022-03-30 18:14:30 +02:00
|
|
|
#!/bin/python3
|
|
|
|
|
|
|
|
headers_dir = 'include/ss/'
|
|
|
|
headers = ['type_traits.hpp',
|
2023-07-10 23:39:08 +02:00
|
|
|
'exception.hpp',
|
2022-03-30 18:14:30 +02:00
|
|
|
'function_traits.hpp',
|
|
|
|
'restrictions.hpp',
|
|
|
|
'common.hpp',
|
|
|
|
'setup.hpp',
|
|
|
|
'splitter.hpp',
|
|
|
|
'extract.hpp',
|
|
|
|
'converter.hpp',
|
|
|
|
'parser.hpp']
|
|
|
|
|
|
|
|
combined_file = []
|
|
|
|
includes = []
|
2024-03-12 18:31:24 +01:00
|
|
|
in_pp_block = False
|
2022-03-30 18:14:30 +02:00
|
|
|
|
|
|
|
for header in headers:
|
|
|
|
with open(headers_dir + header) as f:
|
|
|
|
for line in f.read().splitlines():
|
2024-03-12 18:31:24 +01:00
|
|
|
if '#if ' in line:
|
|
|
|
in_pp_block = True
|
|
|
|
|
|
|
|
if '#endif' in line:
|
|
|
|
in_pp_block = False
|
|
|
|
|
2022-03-30 18:14:30 +02:00
|
|
|
if '#include "' in line or '#include <fast_float' in line:
|
|
|
|
continue
|
|
|
|
|
2024-03-12 18:31:24 +01:00
|
|
|
if '#include <' in line and not in_pp_block:
|
2022-03-30 18:14:30 +02:00
|
|
|
includes.append(line)
|
|
|
|
continue
|
|
|
|
|
|
|
|
if '#pragma once' not in line:
|
|
|
|
combined_file.append(line)
|
|
|
|
|
|
|
|
includes = sorted(set(includes))
|
|
|
|
|
|
|
|
print('\n'.join(includes))
|
|
|
|
print('#define SSP_DISABLE_FAST_FLOAT')
|
|
|
|
print('\n'.join(combined_file))
|