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 Workeros.chdir (os.getenv ('srcdir', os.path.dirname (__file__))) 6*2d1272b8SAndroid Build Coastguard Worker 7*2d1272b8SAndroid Build Coastguard WorkerHBHEADERS = [os.path.basename (x) for x in os.getenv ('HBHEADERS', '').split ()] or \ 8*2d1272b8SAndroid Build Coastguard Worker [x for x in os.listdir ('.') if x.startswith ('hb') and x.endswith ('.h')] 9*2d1272b8SAndroid Build Coastguard Worker 10*2d1272b8SAndroid Build Coastguard Workerstat = 0 11*2d1272b8SAndroid Build Coastguard Worker 12*2d1272b8SAndroid Build Coastguard Workerprint ('Checking that all public symbols are exported with HB_EXTERN') 13*2d1272b8SAndroid Build Coastguard Workerfor x in HBHEADERS: 14*2d1272b8SAndroid Build Coastguard Worker with open (x, 'r', encoding='utf-8') as f: content = f.read () 15*2d1272b8SAndroid Build Coastguard Worker for s in re.findall (r'\n.+\nhb_.+\n', content): 16*2d1272b8SAndroid Build Coastguard Worker if not s.startswith ('\nHB_EXTERN '): 17*2d1272b8SAndroid Build Coastguard Worker print ('failure on:', s) 18*2d1272b8SAndroid Build Coastguard Worker stat = 1 19*2d1272b8SAndroid Build Coastguard Worker 20*2d1272b8SAndroid Build Coastguard Workersys.exit (stat) 21