소스 검색

Add RT-Thread Root folder detection.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2495 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong@gmail.com 12 년 전
부모
커밋
1fa210e6e3
2개의 변경된 파일17개의 추가작업 그리고 13개의 파일을 삭제
  1. 15 12
      tools/sconsui.py
  2. 2 1
      tools/win32spawn.py

+ 15 - 12
tools/sconsui.py

@@ -43,7 +43,7 @@ class CmdExecutor(threading.Thread):
         self.child = None
 
     def run(self):
-        global executor
+        global executor, builder, lock
         
         if platform.system() == 'Windows':
             from win32spawn import Win32Spawn
@@ -182,6 +182,16 @@ class SconsUI():
         if os.environ.has_key('RTT_ROOT'):
             self.RTTRoot.set_path(os.environ['RTT_ROOT'])
         
+        if self.RTTRoot.get_path() == '':
+            rtt_root = ''
+            # detect RT-Thread directory 
+            if os.path.exists(os.path.join('..', 'include', 'rtthread.h')):
+                rtt_root = os.path.join('..')
+            elif os.path.exists(os.path.join('..', '..', 'include', 'rtthread.h')):
+                rtt_root = os.path.join('..', '..')
+            if rtt_root:
+                self.RTTRoot.set_path(os.path.abspath(rtt_root))
+
         # detect compiler path
         if platform.system() == 'Windows':
             # Keil MDK
@@ -388,22 +398,15 @@ class SconsUI():
         exit(0)
 
 def StartSConsUI(path=None):
-    global val, root
+    global val, root, builder, lock
     root = Tk()
     root.title('RT-Thread SCons UI')
-    root.geometrygeometry('590x510+50+50')
+    #root.geometrygeometry('590x510+50+50')
     lock = threading.RLock()
     builder = SconsUI(root)
     if path:
         builder.BSPRoot.set_path(path)
-    root.mainloop
+    root.mainloop()
 
 if __name__ == '__main__':
-    global val, root
-    root = Tk()
-    root.title('scons_builder')
-    root.geometry('590x510+50+50')
-    lock = threading.RLock()
-    scons_ui = SconsUI(root)
-    builder = scons_ui
-    root.mainloop()
+    StartSConsUI()

+ 2 - 1
tools/win32spawn.py

@@ -139,7 +139,8 @@ class Win32Spawn(object):
             try:
                 finished = 0
                 hr, data = win32file.ReadFile(handle, bytesToRead, None)
-                self.queue.put_nowait(data)
+                if data:
+                    self.queue.put_nowait(data)
             except win32api.error:
                 finished = 1