summaryrefslogtreecommitdiff
path: root/tools/ua.py
diff options
context:
space:
mode:
authorbernard <[email protected]>2014-03-24 14:50:47 +0800
committerbernard <[email protected]>2014-03-24 14:50:47 +0800
commit6289a1aa25ebe292cad744fa614ef85438842bc1 (patch)
tree737036dbf05afafd217fa7b611bd56ff70941e9d /tools/ua.py
parent04b5a461799f9be12c72b67a2da87163478fb5d6 (diff)
Add UA building script.
Diffstat (limited to 'tools/ua.py')
-rw-r--r--tools/ua.py66
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