Skip to content

Commit

Permalink
C_cpp_properties platform independent + fixed switch sdk issue
Browse files Browse the repository at this point in the history
Signed-off-by: paulober <[email protected]>
  • Loading branch information
paulober committed Mar 27, 2024
1 parent bc4efed commit c974114
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 26 deletions.
32 changes: 13 additions & 19 deletions scripts/pico_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,23 +356,17 @@ def cmakeToolchainPath(toolchainVersion):
def cmakeToolsPath(sdkVersion):
return f"${{USERHOME}}{relativeToolsPath(sdkVersion)}"

def propertiesSdkPath(sdkVersion, force_windows=False, force_non_windows=False):
if (isWindows or force_windows) and not force_non_windows:
return f"${{env:USERPROFILE}}{relativeSDKPath(sdkVersion)}"
else:
return f"${{env:HOME}}{relativeSDKPath(sdkVersion)}"
def propertiesSdkPath(sdkVersion):
return f"${{userHome}}{relativeSDKPath(sdkVersion)}"

def codeSdkPath(sdkVersion):
return f"${{userHome}}{relativeSDKPath(sdkVersion)}"

def codeOpenOCDPath(openocdVersion):
return f"${{userHome}}{relativeOpenOCDPath(openocdVersion)}"

def propertiesToolchainPath(toolchainVersion, force_windows=False, force_non_windows=False):
if (isWindows or force_windows) and not force_non_windows:
return f"${{env:USERPROFILE}}{relativeToolchainPath(toolchainVersion)}"
else:
return f"${{env:HOME}}{relativeToolchainPath(toolchainVersion)}"
def propertiesToolchainPath(toolchainVersion):
f"${{userHome}}{relativeToolchainPath(toolchainVersion)}"

def codeToolchainPath(toolchainVersion):
return f"${{userHome}}{relativeToolchainPath(toolchainVersion)}"
Expand Down Expand Up @@ -870,19 +864,19 @@ def generateProjectFiles(projectPath, projectName, sdkPath, projects, debugger,
"cmake.cmakePath": "{cmakePath.replace(user_home, "${userHome}") if use_home_var else cmakePath}",
"C_Cpp.debugShortcut": false,
"terminal.integrated.env.windows": {{
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion, force_windows=True)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(sdkVersion, force_windows=True)}",
"Path": "{propertiesToolchainPath(toolchainVersion, force_windows=True)}/bin;{os.path.dirname(cmakePath.replace(user_home, "${env:USERPROFILE}") if use_home_var else cmakePath)};{os.path.dirname(ninjaPath.replace(user_home, "${env:USERPROFILE}") if use_home_var else ninjaPath)};${{env:PATH}}"
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(sdkVersion)}",
"Path": "{propertiesToolchainPath(toolchainVersion)}/bin;{os.path.dirname(cmakePath.replace(user_home, "${env:USERPROFILE}") if use_home_var else cmakePath)};{os.path.dirname(ninjaPath.replace(user_home, "${env:USERPROFILE}") if use_home_var else ninjaPath)};${{env:PATH}}"
}},
"terminal.integrated.env.osx": {{
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion, force_non_windows=True)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(toolchainVersion, force_non_windows=True)}",
"PATH": "{propertiesToolchainPath(toolchainVersion, force_non_windows=True)}/bin:{os.path.dirname(cmakePath.replace(user_home, "${env:HOME}") if use_home_var else cmakePath)}:{os.path.dirname(ninjaPath.replace(user_home, "${env:HOME}") if use_home_var else ninjaPath)}:${{env:PATH}}"
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(toolchainVersion)}",
"PATH": "{propertiesToolchainPath(toolchainVersion)}/bin:{os.path.dirname(cmakePath.replace(user_home, "${env:HOME}") if use_home_var else cmakePath)}:{os.path.dirname(ninjaPath.replace(user_home, "${env:HOME}") if use_home_var else ninjaPath)}:${{env:PATH}}"
}},
"terminal.integrated.env.linux": {{
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion, force_non_windows=True)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(toolchainVersion, force_non_windows=True)}",
"PATH": "{propertiesToolchainPath(toolchainVersion, force_non_windows=True)}/bin:{os.path.dirname(cmakePath.replace(user_home, "${env:HOME}") if use_home_var else cmakePath)}:{os.path.dirname(ninjaPath.replace(user_home, "${env:HOME}") if use_home_var else ninjaPath)}:${{env:PATH}}"
"PICO_SDK_PATH": "{propertiesSdkPath(sdkVersion)}",
"PICO_TOOLCHAIN_PATH": "{propertiesToolchainPath(toolchainVersion)}",
"PATH": "{propertiesToolchainPath(toolchainVersion)}/bin:{os.path.dirname(cmakePath.replace(user_home, "${env:HOME}") if use_home_var else cmakePath)}:{os.path.dirname(ninjaPath.replace(user_home, "${env:HOME}") if use_home_var else ninjaPath)}:${{env:PATH}}"
}},
"raspberry-pi-pico.cmakeAutoConfigure": true,
"raspberry-pi-pico.cmakePath": "{cmakePath.replace(user_home, "${HOME}") if use_home_var else cmakePath}",
Expand Down
11 changes: 4 additions & 7 deletions src/utils/vscodeConfigUtil.mts
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ async function updateCppPropertiesFile(
cppProperties.configurations.forEach(config => {
// Remove the old pico-sdk includePath values set by this extension
config.includePath = config.includePath.filter(
item => !item.startsWith("${env:HOME}/.pico-sdk")
item => !item.startsWith("${userHome}/.pico-sdk")
);
// Add the new pico-sdk includePath
config.includePath.push(`\${env:HOME}/.pico-sdk/sdk/${newSDKVersion}/**`);
config.includePath.push(`\${userHome}/.pico-sdk/sdk/${newSDKVersion}/**`);
// Update the compilerPath
config.compilerPath =
"${env:HOME}/.pico-sdk/toolchain" +
"${userHome}/.pico-sdk/toolchain" +
`/${newToolchainVersion}/bin/${
// "arm-none-eabi-gcc" should work on all platforms no need for extension on Windows
/*process.platform === "win32"
Expand Down Expand Up @@ -94,10 +94,7 @@ function relativeToolchainPath(toolchainVersion: string): string {
* @returns The path to the toolchain.
*/
function buildPropertiesToolchainPathBin(toolchainVersion: string): string {
// TODO: may home is also available in newer versions of windows
return `${
process.platform === "win32" ? "${env:USERPROFILE}" : "${env:HOME}"
}${relativeToolchainPath(toolchainVersion)}/bin`;
return `\${userHome}${relativeToolchainPath(toolchainVersion)}/bin`;
}

function buildCMakePath(cmakeVersion: string): string {
Expand Down

0 comments on commit c974114

Please sign in to comment.