@@ -6,7 +6,6 @@ import Logger, { LoggerSource } from "../../logger.mjs";
66import { unknownErrorToString } from "../errorHelper.mjs" ;
77import { extensionName } from "../../commands/command.mjs" ;
88import { commands , Uri , window , workspace } from "vscode" ;
9- import { CURRENT_WGET_VERSION } from "../sharedConstants.mjs" ;
109import type { VersionBundle } from "../versionBundles.mjs" ;
1110import { HOME_VAR } from "../../settings.mjs" ;
1211import { TextEncoder } from "util" ;
@@ -34,6 +33,7 @@ import {
3433 GET_WEST_PATH ,
3534 GET_ZEPHYR_WORKSPACE_PATH ,
3635} from "../../commands/cmdIds.mjs" ;
36+ import { getZephyrSDKVersion , getZephyrVersion } from "../setupZephyr.mjs" ;
3737
3838// Kconfig snippets
3939const shellWifiKconfig : string = `CONFIG_WIFI_LOG_LEVEL_ERR=y
@@ -96,28 +96,49 @@ async function generateVSCodeConfig(
9696 return false ;
9797 }
9898
99+ const zephyrVersion = await getZephyrVersion ( ) ;
100+ if ( zephyrVersion === undefined ) {
101+ Logger . error ( LoggerSource . projectZephyr , "Failed to get Zephyr version" ) ;
102+ void window . showErrorMessage (
103+ "Failed to detect the currently installed Zephyr version. Please delete `~/.pico-sdk/zephyr_workspace` and try again."
104+ ) ;
105+
106+ return false ;
107+ }
108+
109+ const zephyrSdkVersion = await getZephyrSDKVersion ( zephyrVersion ) ;
110+ if ( zephyrSdkVersion === undefined ) {
111+ Logger . error (
112+ LoggerSource . projectZephyr ,
113+ "Failed to get Zephyr SDK version"
114+ ) ;
115+ void window . showErrorMessage (
116+ "Failed to detect the currently installed Zephyr SDK version. Please delete `~/.pico-sdk/zephyr_workspace` and try again."
117+ ) ;
118+
119+ return false ;
120+ }
121+
99122 const cppProperties = {
100123 version : 4 ,
101124 configurations : [
102125 {
103126 name : "Zephyr" ,
104127 intelliSenseMode : "linux-gcc-arm" ,
105- compilerPath :
106- // TODO: maybe move into command (the part before the executable) / test if not .exe works on win32
107- "${userHome}/.pico-sdk/zephyr_workspace/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc" ,
128+ compilerPath : `\${userHome}/.pico-sdk/zephyr_workspace/zephyr-sdk-${ zephyrSdkVersion } /arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc` ,
108129 includePath : [
109130 "${workspaceFolder}/**" ,
110131 "${workspaceFolder}/build/zephyr/include" ,
111- " ${userHome}/.pico-sdk/zephyr_workspace/zephyr/include" ,
112- " ${userHome}/.pico-sdk/zephyr_workspace/zephyr/modules/cmsis_6" ,
113- " ${userHome}/.pico-sdk/zephyr_workspace/zephyr/modules/hal_infineon" ,
114- " ${userHome}/.pico-sdk/zephyr_workspace/zephyr/modules/hal_rpi_pico" ,
132+ `\ ${userHome}/.pico-sdk/zephyr_workspace/zephyr- ${ zephyrVersion } /include` ,
133+ `\ ${userHome}/.pico-sdk/zephyr_workspace/zephyr- ${ zephyrVersion } /modules/cmsis_6` ,
134+ `\ ${userHome}/.pico-sdk/zephyr_workspace/zephyr- ${ zephyrVersion } /modules/hal_infineon` ,
135+ `\ ${userHome}/.pico-sdk/zephyr_workspace/zephyr- ${ zephyrVersion } /modules/hal_rpi_pico` ,
115136 ] ,
116137 compileCommands : "${workspaceFolder}/build/compile_commands.json" ,
117138 cppStandard : "gnu++20" ,
118139 cStandard : "gnu17" ,
119140 forcedInclude : [
120- " ${userHome}/.pico-sdk/zephyr_workspace/zephyr/include/zephyr/devicetree.h" ,
141+ `\ ${userHome}/.pico-sdk/zephyr_workspace/zephyr- ${ zephyrVersion } /include/zephyr/devicetree.h` ,
121142 "${workspaceFolder}/build/zephyr/include/generated/zephyr/autoconf.h" ,
122143 "${workspaceFolder}/build/zephyr/include/generated/zephyr/version.h" ,
123144 ] ,
@@ -183,7 +204,7 @@ async function generateVSCodeConfig(
183204 "terminal.integrated.env.windows" : {
184205 // remove gperf and dtc for now
185206 // \${env:USERPROFILE}/.pico-sdk/dtc/${CURRENT_DTC_VERSION}/bin;\${env:USERPROFILE}/.pico-sdk/gperf/${CURRENT_GPERF_VERSION}
186- Path : `\${env:USERPROFILE}/.pico-sdk/wget/ ${ CURRENT_WGET_VERSION } ;\${env:USERPROFILE}/.pico-sdk/ 7zip;\${env:Path};` ,
207+ Path : `\${env:USERPROFILE}/.pico-sdk/7zip;\${env:Path};` ,
187208 } ,
188209 "terminal.integrated.env.osx" : {
189210 PATH : "${env:PATH}:" ,
0 commit comments