]> Git Repo - pico-vscode.git/commitdiff
Windows support for HOME environment variable
authorpaulober <[email protected]>
Thu, 2 Nov 2023 20:09:59 +0000 (21:09 +0100)
committerpaulober <[email protected]>
Thu, 2 Nov 2023 20:18:28 +0000 (21:18 +0100)
Signed-off-by: paulober <[email protected]>
scripts/pico_project.py
src/utils/cmakeUtil.mts

index 6b37e70bc3addb5eb1999d0a174503133e10c6e6..da218534845987308d90864106358582e84b9abf 100644 (file)
@@ -231,16 +231,22 @@ def relativeToolchainPath(toolchainVersion):
     return f"/.pico-sdk/toolchain/{toolchainVersion}"
 
 def cmakeSdkPath(sdkVersion):
-    return f"$ENV{{HOME}}{relativeSDKPath(sdkVersion)}"
+    return f"${{USERHOME}}{relativeSDKPath(sdkVersion)}"
 
 def cmakeToolchainPath(toolchainVersion):
-    return f"$ENV{{HOME}}{relativeToolchainPath(toolchainVersion)}"
+    return f"${{USERHOME}}{relativeToolchainPath(toolchainVersion)}"
 
 def codeSdkPath(sdkVersion):
-    return f"${{env:HOME}}{relativeSDKPath(sdkVersion)}"
+    if isWindows:
+        return f"${{env:USERPROFILE}}{relativeSDKPath(sdkVersion)}"
+    else:
+        return f"${{env:HOME}}{relativeSDKPath(sdkVersion)}"
 
 def codeToolchainPath(toolchainVersion):
-    return f"${{env:HOME}}{relativeToolchainPath(toolchainVersion)}"
+    if isWindows:
+        return f"${{env:USERPROFILE}}{relativeToolchainPath(toolchainVersion)}"
+    else:
+        return f"${{env:HOME}}{relativeToolchainPath(toolchainVersion)}"
 
 def GetBackground():
     return 'white'
@@ -1029,7 +1035,12 @@ def GenerateCMake(folder, params):
                  "set(CMAKE_CXX_STANDARD 17)\n\n"
                  "# Initialise pico_sdk from installed location\n"
                  "# (note this can come from environment, CMake cache etc)\n\n"
-                 "# == DO NEVER EDIT THE NEXT TWO LINES for RaspberryPiPico VS Code Extension to work == \n"
+                 "# == DO NEVER EDIT THE NEXT LINES for RaspberryPiPico VS Code Extension to work == \n"
+                 "if(WIN32)\n"
+                 "   set(USERHOME $ENV{USERPROFILE})\n"
+                 "else()\n"
+                 "    set(USERHOME $ENV{HOME})\n"
+                 "endif()\n"
                  f"set(PICO_SDK_PATH {cmakeSdkPath(params['sdkVersion'])})\n"
                  f"set(PICO_TOOLCHAIN_PATH {cmakeToolchainPath(params['toolchainVersion'])})\n"
                  "# ====================================================================================\n"
@@ -1146,14 +1157,14 @@ def GenerateCMake(folder, params):
 
 
 # Generates the requested project files, if any
-def generateProjectFiles(projectPath, projectName, sdkPath, projects, debugger, sdkVersion):
+def generateProjectFiles(projectPath, projectName, sdkPath, projects, debugger, sdkVersion, toolchainVersion):
 
     oldCWD = os.getcwd()
 
     os.chdir(projectPath)
 
     debugger = debugger_config_list[debugger]
-    gdbPath =  "arm-none-eabi-gdb" if isWindows else "gdb-multiarch"
+    gdbPath =  Path(codeToolchainPath(toolchainVersion)+"/bin/arm-none-eabi-gdb") if isWindows else "gdb-multiarch"
     # Need to escape windows files paths backslashes
     # TODO: env in currently not supported in compilerPath var
     #cPath = f"${{env:PICO_TOOLCHAIN_PATH_{envSuffix}}}" + os.path.sep + os.path.basename(str(compilerPath).replace('\\', '\\\\' ))
@@ -1463,7 +1474,7 @@ def DoEverything(parent, params):
         os.system(cmakeCmd)
 
     if params['projects']:
-        generateProjectFiles(projectPath, params['projectName'], params['sdkPath'], params['projects'], params['debugger'], params["sdkVersion"])
+        generateProjectFiles(projectPath, params['projectName'], params['sdkPath'], params['projects'], params['debugger'], params["sdkVersion"], params["toolchainVersion"])
 
     if params['wantBuild']:
         if params['wantGUI'] and ENABLE_TK_GUI:
index 1df478727bac138f5c9c809ecaae4bd85a9db93e..d1d4473a3f8eba05c27f4c4eb73f5879e6d87a0c 100644 (file)
@@ -105,11 +105,11 @@ export async function cmakeUpdateSDK(
     const modifiedContent = content
       .replace(
         sdkPathRegex,
-        `set(PICO_SDK_PATH $ENV{HOME}/.pico-sdk/sdk/${newSDKVersion})`
+        `set(PICO_SDK_PATH \${USERHOME}/.pico-sdk/sdk/${newSDKVersion})`
       )
       .replace(
         toolchainPathRegex,
-        "set(PICO_TOOLCHAIN_PATH $ENV{HOME}/.pico-sdk" +
+        "set(PICO_TOOLCHAIN_PATH ${USERHOME}/.pico-sdk" +
           `/toolchain/${newToolchainVersion})`
       );
 
@@ -152,8 +152,8 @@ export function cmakeGetSelectedToolchainAndSDKVersions(
 
   const path = match[1];
   const path2 = match2[1];
-  const versionRegex = /^\$ENV{HOME}\/\.pico-sdk\/sdk\/([^)]+)$/m;
-  const versionRegex2 = /^\$ENV{HOME}\/\.pico-sdk\/toolchain\/([^)]+)$/m;
+  const versionRegex = /^\${USERHOME}\/\.pico-sdk\/sdk\/([^)]+)$/m;
+  const versionRegex2 = /^\${USERHOME}\/\.pico-sdk\/toolchain\/([^)]+)$/m;
   const versionMatch = path.match(versionRegex);
   const versionMatch2 = path2.match(versionRegex2);
 
This page took 0.033431 seconds and 4 git commands to generate.