| HEADERS = [ |
| "WiringPi/wiringPi/wiringPi.h", |
| "WiringPi/wiringPi/wiringPiI2C.h", |
| "WiringPi/wiringPi/wiringPiSPI.h", |
| "WiringPi/wiringPi/wiringSerial.h", |
| "WiringPi/wiringPi/wiringShift.h", |
| "WiringPi/wiringPi/wpiExtensions.h", |
| |
| "WiringPi/wiringPi/drcSerial.h", |
| "WiringPi/wiringPi/max31855.h", |
| "WiringPi/wiringPi/max5322.h", |
| "WiringPi/wiringPi/mcp23008.h", |
| "WiringPi/wiringPi/mcp23016.h", |
| "WiringPi/wiringPi/mcp23016reg.h", |
| "WiringPi/wiringPi/mcp23017.h", |
| "WiringPi/wiringPi/mcp23s08.h", |
| "WiringPi/wiringPi/mcp23s17.h", |
| "WiringPi/wiringPi/mcp23x0817.h", |
| "WiringPi/wiringPi/mcp23x08.h", |
| "WiringPi/wiringPi/mcp3002.h", |
| "WiringPi/wiringPi/mcp3004.h", |
| "WiringPi/wiringPi/mcp3422.h", |
| "WiringPi/wiringPi/mcp4802.h", |
| "WiringPi/wiringPi/pcf8574.h", |
| "WiringPi/wiringPi/pcf8591.h", |
| "WiringPi/wiringPi/sn3218.h", |
| "WiringPi/wiringPi/softPwm.h", |
| "WiringPi/wiringPi/softServo.h", |
| "WiringPi/wiringPi/softTone.h", |
| "WiringPi/wiringPi/sr595.h", |
| |
| "WiringPi/devLib/ds1302.h", |
| "WiringPi/devLib/font.h", |
| "WiringPi/devLib/gertboard.h", |
| "WiringPi/devLib/lcd128x64.h", |
| "WiringPi/devLib/lcd.h", |
| "WiringPi/devLib/maxdetect.h", |
| "WiringPi/devLib/piFace.h", |
| "WiringPi/devLib/piGlow.h", |
| "WiringPi/devLib/piNes.h" |
| ] |
| def is_c_decl(line): |
| for fn in ['wiringPiISR','wiringPiSetupPiFace','wiringPiSetupPiFaceForGpioProg']: |
| if fn in line: |
| return False |
| for prefix in ['extern','void','int','uint8_t']: |
| if line.startswith(prefix): |
| return True |
| |
| print("// Generated by generate-bindings.py - do not edit manually!") |
| |
| for file in HEADERS: |
| print("\n// Header file {}".format(file)) |
| h = open(file).read().split('\n') |
| extern = False |
| cont = False |
| if 'extern "C" {' not in h: |
| extern = True |
| for line in h: |
| line = line.strip() |
| if cont: |
| print("\t{}".format(line)) |
| cont = ";" not in line |
| continue |
| if line.startswith('extern "C"'): |
| extern = True |
| continue |
| if is_c_decl(line) and extern: |
| print(line) |
| cont = ";" not in line |