Skip to content

Commit 8072f87

Browse files
committed
add script for generate of one header file
1 parent 75b5f1f commit 8072f87

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

utils/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ gen_push_tuple: push_tuple_generator.py
55

66
gen_ref_tuple: ref_tuple_generator.py
77
python ref_tuple_generator.py > ../include/kaguya/gen/ref_tuple.inl
8+
9+
one_header_file: generate_one_header.py
10+
python generate_one_header.py > ../kaguya.hpp
811

912
clean:
1013

utils/generate_one_header.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
import os
3+
import sys
4+
import re
5+
6+
def inner_include_path(line):
7+
m = re.search('#include\s\"(?P<headername>.*)\"',line)
8+
if m:
9+
return m.group('headername')
10+
return None;
11+
12+
def parseheader(out,filepath,basedir,onceincludedfiles):
13+
14+
for line in open(os.path.join(basedir,filepath), 'r'):
15+
if line.find('#pragma once') != -1:
16+
onceincludedfiles.append(os.path.join(basedir,filepath))
17+
path = inner_include_path(line)
18+
if path:
19+
if not os.path.join(basedir,path) in onceincludedfiles:
20+
parseheader(out,path,basedir,onceincludedfiles)
21+
else:
22+
out.write(line)
23+
24+
if __name__ == "__main__":
25+
onceincludedfiles=[]
26+
parseheader(sys.stdout,'kaguya\\kaguya.hpp','..\\include\\',onceincludedfiles)

0 commit comments

Comments
 (0)