Skip to content

Commit 9b30f85

Browse files
authored
revised launch-Infineon_Dev_Config.bat (#213)
1 parent e24428d commit 9b30f85

File tree

1 file changed

+58
-100
lines changed

1 file changed

+58
-100
lines changed

scripts/Infineon_Device_Configurator/windows-amd64/launch-Infineon_Dev_Config.bat

Lines changed: 58 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
@echo off
2+
:: Copyright 2025 - Infineon Technologies
23
setlocal
34
:: Step 1: Validate input argument
45
if "%1"=="" (
5-
echo Error: No *.cbuild-gen-idx.yml file path provided as argument
6+
echo Error: No *.cbuild-gen-idx.yml file path provided as an argument
67
exit /b 1
78
)
89
set "CBUILD_GEN_IDX=%~1"
@@ -12,69 +13,94 @@ if not exist "%CBUILD_GEN_IDX%" (
1213
exit /b 1
1314
)
1415

15-
:: Step 2: Parse project-name and cbuild-gen from *.cbuild-gen-idx.yml, then parse *.cbuild-gen.yml for paths
16+
:: Step 2: Parse project-name, cbuild-gen path from *.cbuild-gen-idx.yml and device-pack with path from *.cbuild-gen.yml
1617
setlocal EnableDelayedExpansion
1718
set "PROJECT_NAME="
18-
set "CBUILD_GEN_YML_DIR="
1919
set "CBUILD_GEN_YML_PATH="
2020
set "DESIGN_MODUS_SRC_PATH="
21-
set "CPROJECT_YML_PATH="
2221
set "CGEN_YML_PATH="
22+
set "DEVICE_PACK="
23+
set "PACK_PATH="
2324

24-
:: Parse project-name from *.cbuild-gen-idx.yml
25+
:: Parse project name from *.cbuild-gen-idx.yml
2526
for /f "delims=" %%a in ('findstr /C:"project:" "%CBUILD_GEN_IDX%"') do (
2627
set "PROJECT_NAME=%%a"
2728
set "PROJECT_NAME=!PROJECT_NAME:project-name:=!"
2829
set "PROJECT_NAME=!PROJECT_NAME: =!"
2930
)
30-
:: Parse cbuild-gen path from *.cbuild-gen-idx.yml and extract directory
31+
:: Parse cbuild-gen path from *.cbuild-gen-idx.yml
3132
for /f "delims=" %%a in ('findstr /C:"cbuild-gen:" "%CBUILD_GEN_IDX%"') do (
3233
set "CBUILD_GEN_YML_PATH=%%a"
3334
set "CBUILD_GEN_YML_PATH=!CBUILD_GEN_YML_PATH:cbuild-gen:=!"
3435
set "CBUILD_GEN_YML_PATH=!CBUILD_GEN_YML_PATH:- =!"
3536
set "CBUILD_GEN_YML_PATH=!CBUILD_GEN_YML_PATH: =!"
3637
set "CBUILD_GEN_YML_PATH=!CBUILD_GEN_YML_PATH:/=\!"
37-
for %%i in ("!CBUILD_GEN_YML_PATH!") do set "CBUILD_GEN_YML_DIR=%%~dpi"
38-
set "CBUILD_GEN_YML_DIR=!CBUILD_GEN_YML_DIR:~0,-1!"
3938
)
4039
echo DEBUG: PROJECT_NAME: !PROJECT_NAME! >> debug.log
41-
echo DEBUG: CBUILD_GEN_YML_DIR: !CBUILD_GEN_YML_DIR! >> debug.log
40+
echo DEBUG: CBUILD_GEN_YML_PATH: !CBUILD_GEN_YML_PATH! >> debug.log
4241

4342
if not defined PROJECT_NAME (
4443
echo Error: Could not parse project-name from %CBUILD_GEN_IDX%
4544
exit /b 1
4645
)
47-
if not defined CBUILD_GEN_YML_DIR (
48-
echo Error: Could not parse cbuild-gen directory from %CBUILD_GEN_IDX%
46+
if not defined CBUILD_GEN_YML_PATH (
47+
echo Error: Could not parse cbuild-gen path from %CBUILD_GEN_IDX%
4948
exit /b 1
5049
)
51-
if not exist "!CBUILD_GEN_YML_DIR!\" (
52-
echo Error: cbuild-gen directory not found at !CBUILD_GEN_YML_DIR!
50+
if not exist "!CBUILD_GEN_YML_PATH!" (
51+
echo Error: *.cbuild-gen.yml file not found at !CBUILD_GEN_YML_PATH!
5352
exit /b 1
5453
)
5554

56-
:: Find *.cbuild-gen.yml in the directory
57-
for /f "delims=" %%f in ('dir /b "!CBUILD_GEN_YML_DIR!\*.cbuild-gen.yml" 2^>nul') do (
58-
set "CBUILD_GEN_YML_PATH=!CBUILD_GEN_YML_DIR!\%%f"
55+
:: Parse device-pack from *.cbuild-gen.yml
56+
for /f "delims=" %%a in ('findstr /C:"device-pack:" "!CBUILD_GEN_YML_PATH!"') do (
57+
set "DEVICE_PACK=%%a"
58+
set "DEVICE_PACK=!DEVICE_PACK:device-pack:=!"
59+
set "DEVICE_PACK=!DEVICE_PACK: =!"
5960
)
60-
echo DEBUG: CBUILD_GEN_YML_PATH: !CBUILD_GEN_YML_PATH! >> debug.log
61+
echo DEBUG: DEVICE_PACK: !DEVICE_PACK! >> debug.log
6162

62-
if not defined CBUILD_GEN_YML_PATH (
63-
echo Error: No *.cbuild-gen.yml file found in !CBUILD_GEN_YML_DIR!
63+
if not defined DEVICE_PACK (
64+
echo Error: Could not parse device-pack from !CBUILD_GEN_YML_PATH!
6465
exit /b 1
6566
)
66-
if not exist "!CBUILD_GEN_YML_PATH!" (
67-
echo Error: *.cbuild-gen.yml file not found at !CBUILD_GEN_YML_PATH!
68-
exit /b 1
67+
68+
:: Parse packs section to find the path for the device-pack
69+
set "FOUND_PACK="
70+
set "PACK_PATH="
71+
set "IN_PACKS=0"
72+
for /f "delims=" %%b in ('type "!CBUILD_GEN_YML_PATH!"') do (
73+
set "LINE=%%b"
74+
set "TRIMMED_LINE=!LINE: =!"
75+
if "!TRIMMED_LINE!"=="packs:" (
76+
set "IN_PACKS=1"
77+
) else if !IN_PACKS! equ 1 (
78+
if "!TRIMMED_LINE!"=="-pack:!DEVICE_PACK!" (
79+
set "FOUND_PACK=1"
80+
) else if defined FOUND_PACK (
81+
if "!TRIMMED_LINE:~0,5!"=="path:" (
82+
set "PACK_PATH=!LINE!"
83+
set "PACK_PATH=!PACK_PATH:path:=!"
84+
set "PACK_PATH=!PACK_PATH: =!"
85+
set "PACK_PATH=!PACK_PATH:/=\!"
86+
goto :end_pack_parse
87+
)
88+
)
89+
)
6990
)
91+
:end_pack_parse
92+
echo DEBUG: PACK_PATH: !PACK_PATH! >> debug.log
7093

71-
:: Parse cproject.yml, cgen.yml, and design.modus paths from *.cbuild-gen.yml
72-
for /f "delims=" %%a in ('findstr /C:"cproject.yml" "!CBUILD_GEN_YML_PATH!"') do (
73-
set "CPROJECT_YML_PATH=%%a"
74-
set "CPROJECT_YML_PATH=!CPROJECT_YML_PATH:project:=!"
75-
set "CPROJECT_YML_PATH=!CPROJECT_YML_PATH: =!"
76-
set "CPROJECT_YML_PATH=!CPROJECT_YML_PATH:/=\!"
94+
if not defined PACK_PATH (
95+
echo Error: Could not parse path for device-pack !DEVICE_PACK! from !CBUILD_GEN_YML_PATH!
96+
exit /b 1
97+
)
98+
if not exist "!PACK_PATH!" (
99+
echo Error: Pack path not found at !PACK_PATH!
100+
exit /b 1
77101
)
102+
103+
:: Parse cgen.yml, and design.modus paths from *.cbuild-gen.yml
78104
for /f "delims=" %%a in ('findstr /C:"cgen.yml" "!CBUILD_GEN_YML_PATH!"') do (
79105
set "CGEN_YML_PATH=%%a"
80106
set "CGEN_YML_PATH=!CGEN_YML_PATH:path:=!"
@@ -87,14 +113,9 @@ for /f "delims=" %%a in ('findstr /C:"design.modus" "!CBUILD_GEN_YML_PATH!"') do
87113
set "DESIGN_MODUS_SRC_PATH=!DESIGN_MODUS_SRC_PATH: =!"
88114
set "DESIGN_MODUS_SRC_PATH=!DESIGN_MODUS_SRC_PATH:/=\!"
89115
)
90-
echo DEBUG: CPROJECT_YML_PATH: !CPROJECT_YML_PATH! >> debug.log
91116
echo DEBUG: CGEN_YML_PATH: !CGEN_YML_PATH! >> debug.log
92117
echo DEBUG: DESIGN_MODUS_SRC_PATH: !DESIGN_MODUS_SRC_PATH! >> debug.log
93118

94-
if not defined CPROJECT_YML_PATH (
95-
echo Error: Could not parse cproject.yml path from !CBUILD_GEN_YML_PATH!
96-
exit /b 1
97-
)
98119
if not defined CGEN_YML_PATH (
99120
echo Error: Could not parse cgen.yml path from !CBUILD_GEN_YML_PATH!
100121
exit /b 1
@@ -137,7 +158,7 @@ if not exist "!DESIGN_MODUS_DEST_PATH!" (
137158
) else (
138159
echo design.modus already exists at !DESIGN_MODUS_DEST_PATH! >> debug.log
139160
)
140-
endlocal & set "PROJECT_NAME=%PROJECT_NAME%" & set "CPROJECT_YML_PATH=%CPROJECT_YML_PATH%" & set "CGEN_YML_PATH=%CGEN_YML_PATH%"
161+
endlocal & set "PROJECT_NAME=%PROJECT_NAME%" & set "CGEN_YML_PATH=%CGEN_YML_PATH%" & set "PACK_PATH=%PACK_PATH%"
141162

142163
:: Step 3: Define paths based on *.cgen.yml path
143164
setlocal EnableDelayedExpansion
@@ -290,80 +311,17 @@ if "!TOOL_PATH!"=="" (
290311
)
291312
endlocal & set "TOOL_PATH=%TOOL_PATH%"
292313

293-
:: Step 5: Parse cbuild.yml from the directory where *.cproject.yml is present and extract props.json paths
314+
:: Step 5: Extract props.json paths using PACK_PATH from Step 2
294315
setlocal EnableDelayedExpansion
295316
set "LIBRARY_PATH="
296-
set "CBUILD_FILE="
297317
set "MTB_PDL_FOUND=0"
298318
set "DEVICE_DB_FOUND=0"
299319
set "MISSING_FILES="
300320
set "MTB_PDL_DIRS="
301321
set "DEVICE_DB_DIRS="
302322

303-
:: Derive directory from CPROJECT_YML_PATH
304-
for %%i in ("!CPROJECT_YML_PATH!") do set "PARENT_DIR=%%~dpi"
305-
set "PARENT_DIR=!PARENT_DIR:~0,-1!"
306-
307-
:: Find *.cbuild.yml in parent directory
308-
echo Searching for *.cbuild.yml in !PARENT_DIR!... >> debug.log
309-
for /f "delims=" %%f in ('dir /b "!PARENT_DIR!\*.cbuild.yml" 2^>nul') do (
310-
set "CBUILD_FILE=!PARENT_DIR!\%%f"
311-
)
312-
313-
if not defined CBUILD_FILE (
314-
echo Error: No *.cbuild.yml file found in !PARENT_DIR!
315-
exit /b 1
316-
)
317-
if not exist "!CBUILD_FILE!" (
318-
echo Error: cbuild file not found at !CBUILD_FILE!
319-
exit /b 1
320-
)
321-
322-
:: Log the cbuild file being processed
323-
echo Processing cbuild file: !CBUILD_FILE!
324-
325-
:: Parse device-pack from cbuild.yml
326-
set "DEVICE_PACK="
327-
for /f "delims=" %%a in ('findstr /C:"device-pack:" "!CBUILD_FILE!"') do (
328-
set "DEVICE_PACK=%%a"
329-
set "DEVICE_PACK=!DEVICE_PACK:device-pack:=!"
330-
set "DEVICE_PACK=!DEVICE_PACK: =!"
331-
)
332-
if not defined DEVICE_PACK (
333-
echo Error: Could not parse device-pack from !CBUILD_FILE!
334-
exit /b 1
335-
)
336-
337-
:: Extract pack name and version
338-
set "PACK_NAME="
339-
set "PACK_VERSION="
340-
for /f "tokens=1,2 delims=@" %%a in ("!DEVICE_PACK!") do (
341-
set "PACK_NAME=%%a"
342-
set "PACK_VERSION=%%b"
343-
)
344-
if not defined PACK_NAME (
345-
echo Error: Could not parse pack name from device-pack: !DEVICE_PACK!
346-
exit /b 1
347-
)
348-
if not defined PACK_VERSION (
349-
echo Error: Could not parse pack version from device-pack: !DEVICE_PACK!
350-
exit /b 1
351-
)
352-
353-
:: Remove vendor prefix (Infineon::) from pack name
354-
set "PACK_NAME_PATH=!PACK_NAME:Infineon::=!"
355-
echo Parsed pack name: !PACK_NAME!, version: !PACK_VERSION! >> debug.log
356-
357-
:: Construct pack path
358-
set "PACK_PATH=%USERPROFILE%\AppData\Local\Arm\Packs\Infineon\!PACK_NAME_PATH!\!PACK_VERSION!"
359-
set "PACK_PATH=!PACK_PATH:/=\!"
360-
echo Checking pack path: !PACK_PATH! >> debug.log
361-
362-
:: Verify pack path exists
363-
if not exist "!PACK_PATH!" (
364-
echo Error: Pack path not found at !PACK_PATH!
365-
exit /b 1
366-
)
323+
:: Use PACK_PATH from Step 2
324+
echo Checking pack path from Step 2: !PACK_PATH! >> debug.log
367325

368326
:: Check for Libraries folder
369327
set "LIBRARIES_PATH=!PACK_PATH!\Libraries"

0 commit comments

Comments
 (0)