diff options
| author | bernard <[email protected]> | 2014-03-24 14:50:47 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2014-03-24 14:50:47 +0800 |
| commit | 6289a1aa25ebe292cad744fa614ef85438842bc1 (patch) | |
| tree | 737036dbf05afafd217fa7b611bd56ff70941e9d /tools/ua.py | |
| parent | 04b5a461799f9be12c72b67a2da87163478fb5d6 (diff) | |
Add UA building script.
Diffstat (limited to 'tools/ua.py')
| -rw-r--r-- | tools/ua.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/ua.py b/tools/ua.py new file mode 100644 index 0000000000..89d3190e23 --- /dev/null +++ b/tools/ua.py @@ -0,0 +1,66 @@ +import os +import sys +from utils import _make_path_relative + +def PrefixPath(prefix, path): + path = os.path.abspath(path) + prefix = os.path.abspath(prefix) + + if sys.platform == 'win32': + prefix = prefix.lower() + path = path.lower() + + if path.startswith(prefix): + return True + + return False + +def PrepareUA(project, RTT_ROOT, BSP_ROOT): + with open('rtua.py', 'w') as ua: + # ua.write('import os\n') + # ua.write('import sys\n') + ua.write('\n') + + print RTT_ROOT + + CPPPATH = [] + CPPDEFINES = [] + + for group in project: + # get each include path + if group.has_key('CPPPATH') and group['CPPPATH']: + CPPPATH += group['CPPPATH'] + + # get each group's definitions + if group.has_key('CPPDEFINES') and group['CPPDEFINES']: + CPPDEFINES += group['CPPDEFINES'] + + if len(CPPPATH): + # remove repeat path + paths = [i for i in set(CPPPATH)] + CPPPATH = [] + for path in paths: + if PrefixPath(RTT_ROOT, path): + CPPPATH += ['RTT_ROOT + "/%s",' % _make_path_relative(RTT_ROOT, path).replace('\\', '/')] + + elif PrefixPath(BSP_ROOT, path): + CPPPATH += ['BSP_ROOT + "/%s",' % _make_path_relative(RTT_ROOT, path).replace('\\', '/')] + else: + CPPPATH += ['"%s",' % path.replace('\\', '/')] + + CPPPATH.sort() + ua.write('def GetCPPPATH(BSP_ROOT, RTT_ROOT):\n') + ua.write('\tCPPPATH=[\n') + for path in CPPPATH: + ua.write('\t\t%s\n' % path) + ua.write('\t]\n\n') + ua.write('\treturn CPPPATH\n\n') + + if len(CPPDEFINES): + CPPDEFINES = [i for i in set(CPPDEFINES)] + + ua.write('def GetCPPDEFINES():\n') + ua.write('\tCPPDEFINES=%s\n' % str(CPPDEFINES)) + ua.write('\treturn CPPDEFINES\n\n') + + print CPPDEFINES |
