Skip to content

Commit 0880a4e

Browse files
committed
Add support for PICO_BOARD_HEADER_DIRS as a semi-colon separated path list
1 parent 0de3234 commit 0880a4e

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/commands/switchBoard.mts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414
cmakeGetPicoVar,
1515
} from "../utils/cmakeUtil.mjs";
1616
import { join } from "path";
17+
import { resolve } from "path";
18+
import { normalize } from "path";
1719
import { compareLt } from "../utils/semverUtil.mjs";
1820
import type UI from "../ui.mjs";
1921
import { updateVSCodeStaticConfigs } from "../utils/vscodeConfigUtil.mjs";
@@ -49,12 +51,32 @@ export default class SwitchBoardCommand extends Command {
4951
const ws = workspaceFolder.uri.fsPath;
5052
const cMakeCachePath = join(ws, "build","CMakeCache.txt");
5153

52-
const picoBoardHeaderDirs = cmakeGetPicoVar(
54+
let picoBoardHeaderDirs = cmakeGetPicoVar(
5355
cMakeCachePath,
5456
"PICO_BOARD_HEADER_DIRS");
5557

5658
if(picoBoardHeaderDirs){
57-
boardHeaderDirList.push(picoBoardHeaderDirs);
59+
if(picoBoardHeaderDirs.startsWith("'")){
60+
const substrLen = picoBoardHeaderDirs.length-1;
61+
picoBoardHeaderDirs = picoBoardHeaderDirs.substring(1,substrLen);
62+
}
63+
64+
const picoBoardHeaderDirList = picoBoardHeaderDirs.split(";");
65+
picoBoardHeaderDirList.forEach(
66+
item => {
67+
let boardPath = resolve(item);
68+
const normalized = normalize(item);
69+
70+
//If path is not absolute, join workspace path
71+
if(boardPath !== normalized){
72+
boardPath = join(ws,normalized);
73+
}
74+
75+
if(existsSync(boardPath)){
76+
boardHeaderDirList.push(boardPath);
77+
}
78+
}
79+
);
5880
}
5981
}
6082

0 commit comments

Comments
 (0)