-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.bat
More file actions
90 lines (74 loc) · 2.85 KB
/
build.bat
File metadata and controls
90 lines (74 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
@echo off
setlocal EnableDelayedExpansion
REM ---------------------------------------------------------------------------
REM spectrum_analyzer build / run script
REM
REM Usage:
REM build.bat -> Release build (default)
REM build.bat Debug -> Debug build
REM build.bat Release clean -> Clean + Release build
REM build.bat run -> Run with default settings (Release)
REM build.bat run Debug -> Run debug build
REM build.bat run -- --window hamming --fft 2048
REM ---------------------------------------------------------------------------
set "ROOT_DIR=%~dp0"
REM Strip trailing backslash so quoted paths don't escape the closing quote
if "%ROOT_DIR:~-1%"=="\" set "ROOT_DIR=%ROOT_DIR:~0,-1%"
set "BUILD_DIR=%ROOT_DIR%\build"
REM ---------------------------------------------------------------------------
REM RUN mode
REM ---------------------------------------------------------------------------
if /I NOT "%~1"=="run" goto :buildMode
set "RUN_CONFIG=Release"
set "EXTRA_ARGS="
if /I "%~2"=="Debug" set "RUN_CONFIG=Debug"
if /I "%~2"=="Release" set "RUN_CONFIG=Release"
REM Collect extra args (%3 onwards, or %2 onwards if no config flag given)
if /I "%~2"=="Debug" ( set "EXTRA_ARGS=%~3 %~4 %~5 %~6 %~7 %~8 %~9" & goto :runExe )
if /I "%~2"=="Release" ( set "EXTRA_ARGS=%~3 %~4 %~5 %~6 %~7 %~8 %~9" & goto :runExe )
if "%~2"=="--" ( set "EXTRA_ARGS=%~3 %~4 %~5 %~6 %~7 %~8 %~9" & goto :runExe )
set "EXTRA_ARGS=%~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9"
:runExe
set "EXE_PATH=%BUILD_DIR%\cmake\spectrum_analyzer\%RUN_CONFIG%\spectrum_analyzer.exe"
if not exist "%EXE_PATH%" (
echo [run] Executable not found — building %RUN_CONFIG% first ...
call "%~f0" %RUN_CONFIG%
if errorlevel 1 ( endlocal & exit /b 1 )
)
echo [run] %EXE_PATH% %EXTRA_ARGS%
"%EXE_PATH%" %EXTRA_ARGS%
set "RC=%ERRORLEVEL%"
endlocal & exit /b %RC%
:buildMode
REM ---------------------------------------------------------------------------
REM BUILD mode
REM ---------------------------------------------------------------------------
set "CONFIG=%~1"
if "%CONFIG%"=="" set "CONFIG=Release"
set "CLEAN=%~2"
if /I "%CLEAN%"=="clean" (
echo [build] Cleaning %BUILD_DIR% ...
if exist "%BUILD_DIR%" rmdir /S /Q "%BUILD_DIR%"
)
if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
echo [build] Configuring (%CONFIG%) ...
cmake -S "%ROOT_DIR%" -B "%BUILD_DIR%"
if errorlevel 1 goto :fail
echo [build] Building (%CONFIG%) ...
cmake --build "%BUILD_DIR%" --config %CONFIG% -- /m
if errorlevel 1 goto :fail
set "EXE_PATH=%BUILD_DIR%\cmake\spectrum_analyzer\%CONFIG%\spectrum_analyzer.exe"
echo.
echo [build] Done.
echo [build] Executable : %EXE_PATH%
echo.
echo [build] Quick start:
echo build.bat run
echo build.bat run -- --window hamming --fft 2048
endlocal
exit /b 0
:fail
echo.
echo [build] FAILED.
endlocal
exit /b 1