| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- @echo off
- REM RASC launcher 2024-08-05
- setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
- REM First parameter is (possibly non-existent) file containing RASC version to invoke
- set "RascVersionFile=%~1"
- REM RASC version handler script is located in the same directory as this launcher script
- set "RascVersionHandler=%~dp0rasc_version.bat"
- REM Shift to leave remaining parameters as input parameters to RASC
- shift
- REM Define input and output files
- set "InputFile=%~dp0configuration.xml"
- set "OutputFile=%~dp0output.rasc"
- REM Check if --gensmartbundle is passed, 9th param is .axf file
- if "%~3"=="--gensmartbundle" (
- set "InputFile=%~9"
- set "OutputFile=%~dpn9.sbd"
- )
- REM Check if input file exists
- if not exist "%InputFile%" (
- echo [ERROR] Input file "%InputFile%" does not exist. Exiting.
- exit /b 1
- )
- REM Check if output file exists
- if not exist "%OutputFile%" (
- echo [INFO] Output file "%OutputFile%" does not exist. Proceeding with RASC invocation...
- goto :InvokeRasc
- )
- REM Compare timestamps of input and output files
- xcopy /L /D /Y "%InputFile%" "%OutputFile%" | findstr /B /C:"1 " > nul
- if not errorlevel 1 (
- echo [INFO] Input file "%InputFile%" is newer than output file "%OutputFile%". Proceeding with RASC invocation...
- goto :InvokeRasc
- ) else (
- echo [INFO] Input file "%InputFile%" is older than output file "%OutputFile%". Skipping RASC invocation.
- exit /b 0
- )
- :InvokeRasc
- REM Invoke rasc_version.bat to check rasc_version.txt and update it if required
- REM If user selection of RASC version is required then the first non-interactive call will exit with error status
- REM In that case we re-invoke in a new command shell to allow user interaction
- call "%RascVersionHandler%" "%RascVersionFile%" NonInteractive || start /wait "Renesas" cmd /c ""%RascVersionHandler%" "%RascVersionFile%""
- if errorlevel 1 exit /b 1
- REM Extract specific RASC version from file
- REM echo "%RascVersionFile%"
- if exist "%RascVersionFile%" (
- REM echo DEBUG: Have version file: "%RascVersionFile%"
- set /a idx=0
- for /f "usebackq tokens=*" %%a in ("%RascVersionFile%") do (
- if !idx! EQU 2 (
- set "RascExe=%%a"
- )
- set /a idx+=1
- )
- )
- REM Synchronous behaviour for build pre/post steps
- set "WaitRasc="
- IF "%~3"=="--generate" SET CLI=true
- IF "%~3"=="--gensmartbundle" SET CLI=true
- IF "%CLI%"=="true" (
- SET "WaitRasc=/b /wait"
- SET RascExe=%RascExe:rasc.exe=rascc.exe%
- )
- set Parameters=
- for %%a in (%*) do (
- if defined FirstParamSkipped set Parameters=!Parameters! %%a
- set FirstParamSkipped=true
- )
- REM echo DEBUG: Launching "%RascExe%" %Parameters%
- start "" %WaitRasc% "%RascExe%" %Parameters%
- if not errorlevel 1 goto :EOF
- exit /b 1
|