Selaa lähdekoodia

add longpath enable

yaxing.chen 5 vuotta sitten
vanhempi
sitoutus
44fe43a326
3 muutettua tiedostoa jossa 24 lisäystä ja 2 poistoa
  1. 8 0
      longpathenable.bat
  2. 1 1
      platformio_support_package.yaml
  3. 15 1
      script.py

+ 8 - 0
longpathenable.bat

@@ -0,0 +1,8 @@
+%1 %2
+@echo off
+ver|find "5.">nul&&goto :admin
+mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :admin","","runas",1)(window.close)&goto :eof
+:admin
+reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem /v LongPathsEnabled /t REG_DWORD  /f /d 1
+:eof
+

+ 1 - 1
platformio_support_package.yaml

@@ -1,6 +1,6 @@
 ---
 yaml_version: 1
-pkg_version: 5.0.3.4
+pkg_version: 5.0.3.5
 pkg_vendor: RealThread
 pkg_type: ThirdParty_Support_Packages
 name: PlatformIO

+ 15 - 1
script.py

@@ -114,6 +114,7 @@ class PlatformioBuilder(object):
 
 
 if len(sys.argv) > 2:
+    builder = PlatformioBuilder()
     rt_studio_version = sys.argv[1]
     if "global" in str(sys.argv[2]).lower():
         is_studio_global_version = True
@@ -121,8 +122,21 @@ if len(sys.argv) > 2:
         is_studio_global_version = False
     print("rt_studio_version: " + str(rt_studio_version))
     if rt_studio_version >= "2.0.0":
+        result = os.popen("""reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem /v LongPathsEnabled""")
+        if "1" in result.read().strip().split(" ")[-1]:
+            print("Long path support has enabled")
+        else:        
+            print("Long path support has not enabled")
+            print("Enable windows long path support...")
+            bat_path = builder.current_folder.joinpath("longpathenable.bat").as_posix()
+            os.system(str(bat_path))
+            result = os.popen("""reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem /v LongPathsEnabled""")
+            if "1" in result.read().strip().split(" ")[-1]:
+                print("Long path support has enabled")
+            else:
+                print("Enable long path support fail.")
+                sys.exit(1)
         if is_studio_global_version:
-            builder = PlatformioBuilder()
             builder.make_platformio()
         else:
             builder = PlatformioBuilder()