thanks to @whitequark, could use cppo for preprocessing files