Skip to content

Instantly share code, notes, and snippets.

@tzutalin
Created August 2, 2016 12:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tzutalin/4d76f63b7b2bc25908d28c464bb0ddc0 to your computer and use it in GitHub Desktop.
Save tzutalin/4d76f63b7b2bc25908d28c464bb0ddc0 to your computer and use it in GitHub Desktop.
run flatc
#!/usr/bin/env python
__author__ = 'TzuTaLin'
# Copyright (c) 2016 Tzutalin
# Create by TzuTaLin <tzu.ta.lin@gmail.com>
import os
import platform
import subprocess
import sys
EXECUTABLE_EXTENSION = '.exe' if platform.system() == 'Windows' else ''
FLATC_SEARCH_PATHS = [os.path.curdir, 'Release', 'Debug']
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
def scanIdlFiles(folderPath):
extensions = {'.fbs', '.FBS'}
fbslist = []
for root, dirs, files in os.walk(folderPath):
for file in files:
if file.lower().endswith(tuple(extensions)):
relatviePath = os.path.join(root, file)
fbslist.append(os.path.abspath(relatviePath))
fbslist.sort(key=lambda x: x.lower())
return fbslist
def main():
"""Script that finds and runs flatc built from source."""
if len(sys.argv) < 2:
sys.stderr.write('Usage: run_flatc.py flatbuffers_dir output_dir\n')
return 1
cwd = os.path.dirname(os.path.abspath(__file__))
flatc = ''
flatbuffers_dir = sys.argv[1]
for path in FLATC_SEARCH_PATHS:
current = os.path.join(flatbuffers_dir, path,
'flatc' + EXECUTABLE_EXTENSION)
if os.path.exists(current):
flatc = current
break
if not flatc:
sys.stderr.write('flatc not found\n')
return 1
os.chdir(cwd)
fbslist = scanIdlFiles(cwd)
output = sys.argv[2]
command = [flatc] + ['-o', output, '--java', '--cpp', '-b'] + fbslist
ret = subprocess.call(command)
return ret
if __name__ == '__main__':
sys.exit(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment