فهرست منبع

【修复】studio 生成工程报错的问题。

guozhanxin 4 سال پیش
والد
کامیت
f0ca8be39d
2فایلهای تغییر یافته به همراه28 افزوده شده و 2 حذف شده
  1. 2 1
      tools/building.py
  2. 26 1
      tools/menuconfig.py

+ 2 - 1
tools/building.py

@@ -448,7 +448,8 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
                            duplicate=0,
                            exports='remove_components'))
     # include testcases
-    objs.extend(SConscript(Rtt_Root + '/examples/utest/testcases/SConscript',
+    if os.path.isfile(os.path.join(Rtt_Root, 'examples/utest/testcases/SConscript')):
+        objs.extend(SConscript(Rtt_Root + '/examples/utest/testcases/SConscript',
                            variant_dir=kernel_vdir + '/examples/utest/testcases',
                            duplicate=0))
 

+ 26 - 1
tools/menuconfig.py

@@ -217,8 +217,27 @@ def touch_env():
         if os.path.exists(os.path.join(env_dir, 'tools', 'scripts')):
             os.environ["PATH"] = os.path.join(env_dir, 'tools', 'scripts') + ';' + os.environ["PATH"]
 
+# Exclude utestcases 
+def exclude_utestcases(RTT_ROOT):
+    if os.path.isfile(os.path.join(RTT_ROOT, 'examples/utest/testcases/Kconfig')):
+        return
+
+    if not os.path.isfile(os.path.join(RTT_ROOT, 'Kconfig')):
+        return
+
+    with open(os.path.join(RTT_ROOT, 'Kconfig'), 'r') as f:
+        data = f.readlines()
+    with open(os.path.join(RTT_ROOT, 'Kconfig'), 'w') as f:
+        for line in data:
+            if line.find('examples/utest/testcases/Kconfig') == -1:
+                f.write(line)
+
 # menuconfig for Linux
 def menuconfig(RTT_ROOT):
+
+    # Exclude utestcases 
+    exclude_utestcases(RTT_ROOT)
+
     kconfig_dir = os.path.join(RTT_ROOT, 'tools', 'kconfig-frontends')
     os.system('scons -C ' + kconfig_dir)
 
@@ -250,6 +269,9 @@ def menuconfig(RTT_ROOT):
 def guiconfig(RTT_ROOT):
     import pyguiconfig
 
+    # Exclude utestcases 
+    exclude_utestcases(RTT_ROOT)
+
     if sys.platform != 'win32':
         touch_env()
 
@@ -260,7 +282,7 @@ def guiconfig(RTT_ROOT):
     fn = '.config'
     fn_old = '.config.old'
 
-    sys.argv = ['guiconfig', 'Kconfig'];
+    sys.argv = ['guiconfig', 'Kconfig']
     pyguiconfig._main()
 
     if os.path.isfile(fn):
@@ -281,6 +303,9 @@ def guiconfig(RTT_ROOT):
 def guiconfig_silent(RTT_ROOT):
     import defconfig
 
+    # Exclude utestcases 
+    exclude_utestcases(RTT_ROOT)
+    
     if sys.platform != 'win32':
         touch_env()