5 srcdir
= os
.getenv ('srcdir', os
.path
.dirname (__file__
))
6 base_srcdir
= os
.getenv ('base_srcdir', srcdir
)
11 abs_path
= os
.path
.join(base_srcdir
, s
)
12 return os
.path
.relpath(abs_path
, srcdir
)
14 HBHEADERS
= [os
.path
.basename (x
) for x
in os
.getenv ('HBHEADERS', '').split ()] or \
15 [x
for x
in os
.listdir ('.') if x
.startswith ('hb') and x
.endswith ('.h')]
18 removeprefix(x
) for x
in os
.getenv ('HBSOURCES', '').split ()
20 x
for x
in os
.listdir ('.') if x
.startswith ('hb') and x
.endswith (('.cc', '.hh'))
26 print ('Checking that public header files #include "hb-common.h" or "hb.h" first (or none)')
28 if x
== 'hb.h' or x
== 'hb-common.h': continue
29 with
open (x
, 'r', encoding
='utf-8') as f
: content
= f
.read ()
30 first
= re
.findall (r
'#.*include.*', content
)[0]
31 if first
not in ['#include "hb.h"', '#include "hb-common.h"']:
32 print ('failure on %s' % x
)
35 print ('Checking that source files #include a private header first (or none)')
37 with
open (x
, 'r', encoding
='utf-8') as f
: content
= f
.read ()
38 includes
= re
.findall (r
'#.*include.*', content
)
40 if not len (re
.findall (r
'".*\.hh"', includes
[0])):
41 print ('failure on %s' % x
)
44 print ('Checking that there is no #include <hb-*.h>')
45 for x
in HBHEADERS
+ HBSOURCES
:
46 with
open (x
, 'r', encoding
='utf-8') as f
: content
= f
.read ()
47 if re
.findall ('#.*include.*<.*hb', content
):
48 print ('failure on %s' % x
)