统一固件版本号:以 jb_product.h 为唯一真源
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+18
-10
@@ -16,11 +16,10 @@ set HEX_PATH=%cd%\MDK-ARM\Objects
|
||||
@REM Custom output directory
|
||||
set OUTPUT_PATH=%cd%\Output
|
||||
|
||||
@REM Software version header
|
||||
set VERSION_FILE_PATH=%cd%\Inc\application.h
|
||||
|
||||
@REM Software version string format
|
||||
set SOFTWARE_VERSION="#define __VERSION__"
|
||||
@REM Project code: application.h __PROJECT_CODE__
|
||||
@REM Soft version: jb_product.h JB_MCU_SW_VERSION_* (single source of truth)
|
||||
set APP_H=%cd%\Inc\application.h
|
||||
set PRODUCT_H=%cd%\Protocol\jb_product.h
|
||||
|
||||
@REM Optional arg1: Keil root ($K) passed by AfterMake
|
||||
set "KEIL_ROOT=%~1"
|
||||
@@ -31,14 +30,23 @@ set "KEIL_ROOT=%~1"
|
||||
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyMMdd_HHmmss"') do set CURRENT_DATE=%%i
|
||||
|
||||
@REM ------------------------------------------------------------
|
||||
@REM Read software version from application.h
|
||||
@REM Compose name: PROJECT_MAJOR.MINOR.PATCH
|
||||
@REM ------------------------------------------------------------
|
||||
set SW_Ver=unknown
|
||||
for /f "tokens=3 delims= " %%i in ('findstr /C:%SOFTWARE_VERSION% "%VERSION_FILE_PATH%"') do set SW_Ver=%%i
|
||||
if defined SW_Ver set SW_Ver=%SW_Ver:"=%
|
||||
set PROJECT_CODE=DEMO
|
||||
set VER_MAJOR=0
|
||||
set VER_MINOR=0
|
||||
set VER_PATCH=0
|
||||
|
||||
@REM Custom output file name
|
||||
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define __PROJECT_CODE__" "%APP_H%"') do set PROJECT_CODE=%%i
|
||||
if defined PROJECT_CODE set PROJECT_CODE=%PROJECT_CODE:"=%
|
||||
|
||||
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_MAJOR" "%PRODUCT_H%"') do set VER_MAJOR=%%i
|
||||
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_MINOR" "%PRODUCT_H%"') do set VER_MINOR=%%i
|
||||
for /f "tokens=3 delims= " %%i in ('findstr /C:"#define JB_MCU_SW_VERSION_PATCH" "%PRODUCT_H%"') do set VER_PATCH=%%i
|
||||
|
||||
set SW_Ver=%PROJECT_CODE%_%VER_MAJOR%.%VER_MINOR%.%VER_PATCH%
|
||||
set output_file_name=%SW_Ver%_%CURRENT_DATE%
|
||||
echo Firmware version: %SW_Ver%
|
||||
|
||||
if not exist "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user