1*2d1272b8SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*2d1272b8SAndroid Build Coastguard Worker 3*2d1272b8SAndroid Build Coastguard Workerimport sys, os, re 4*2d1272b8SAndroid Build Coastguard Worker 5*2d1272b8SAndroid Build Coastguard Workersrcdir = os.getenv ('srcdir', os.path.dirname (__file__)) 6*2d1272b8SAndroid Build Coastguard Workerbase_srcdir = os.getenv ('base_srcdir', srcdir) 7*2d1272b8SAndroid Build Coastguard Worker 8*2d1272b8SAndroid Build Coastguard Workeros.chdir (srcdir) 9*2d1272b8SAndroid Build Coastguard Worker 10*2d1272b8SAndroid Build Coastguard Workerdef removeprefix(s): 11*2d1272b8SAndroid Build Coastguard Worker abs_path = os.path.join(base_srcdir, s) 12*2d1272b8SAndroid Build Coastguard Worker return os.path.relpath(abs_path, srcdir) 13*2d1272b8SAndroid Build Coastguard Worker 14*2d1272b8SAndroid Build Coastguard Worker 15*2d1272b8SAndroid Build Coastguard WorkerHBHEADERS = [os.path.basename (x) for x in os.getenv ('HBHEADERS', '').split ()] or \ 16*2d1272b8SAndroid Build Coastguard Worker [x for x in os.listdir ('.') if x.startswith ('hb') and x.endswith ('.h')] 17*2d1272b8SAndroid Build Coastguard WorkerHBSOURCES = [ 18*2d1272b8SAndroid Build Coastguard Worker removeprefix(x) for x in os.getenv ('HBSOURCES', '').split () 19*2d1272b8SAndroid Build Coastguard Worker] or [ 20*2d1272b8SAndroid Build Coastguard Worker x for x in os.listdir ('.') if x.startswith ('hb') and x.endswith (('.cc', '.hh')) 21*2d1272b8SAndroid Build Coastguard Worker] 22*2d1272b8SAndroid Build Coastguard Worker 23*2d1272b8SAndroid Build Coastguard Worker 24*2d1272b8SAndroid Build Coastguard Workerstat = 0 25*2d1272b8SAndroid Build Coastguard Worker 26*2d1272b8SAndroid Build Coastguard Workerfor x in HBHEADERS + HBSOURCES: 27*2d1272b8SAndroid Build Coastguard Worker if not x.endswith ('h') or x == 'hb-gobject-structs.h': continue 28*2d1272b8SAndroid Build Coastguard Worker tag = x.upper ().replace ('.', '_').replace ('-', '_').replace(os.path.sep, '_').replace('/', '_') 29*2d1272b8SAndroid Build Coastguard Worker with open (x, 'r', encoding='utf-8') as f: content = f.read () 30*2d1272b8SAndroid Build Coastguard Worker if len (re.findall (tag + r'\b', content)) != 3: 31*2d1272b8SAndroid Build Coastguard Worker print ('Ouch, header file %s does not have correct preprocessor guards. Expected: %s' % (x, tag)) 32*2d1272b8SAndroid Build Coastguard Worker stat = 1 33*2d1272b8SAndroid Build Coastguard Worker 34*2d1272b8SAndroid Build Coastguard Workersys.exit (stat) 35