|
1 | 1 | @echo off |
2 | 2 | setlocal enabledelayedexpansion |
3 | 3 |
|
4 | | -REM Usage: build.bat [ARCH], If ARCH is not specified, it defaults to x64. |
| 4 | +REM Usage: build.bat [ARCH] [MODE], If ARCH is not specified, it defaults to x64. |
| 5 | +REM MODE can be 'profile' or '--profile' to enable profiling instrumentation |
5 | 6 | set ARCH=%1 |
6 | 7 | if "%ARCH%"=="" set ARCH=x64 |
| 8 | + |
| 9 | +REM Check for profiling mode |
| 10 | +set PROFILING_MODE=0 |
| 11 | +if /i "%2"=="profile" set PROFILING_MODE=1 |
| 12 | +if /i "%2"=="--profile" set PROFILING_MODE=1 |
| 13 | +if /i "%1"=="profile" ( |
| 14 | + set PROFILING_MODE=1 |
| 15 | + set ARCH=x64 |
| 16 | +) |
| 17 | +if /i "%1"=="--profile" ( |
| 18 | + set PROFILING_MODE=1 |
| 19 | + set ARCH=x64 |
| 20 | +) |
| 21 | + |
7 | 22 | echo [DIAGNOSTIC] Target Architecture set to: %ARCH% |
| 23 | +if %PROFILING_MODE%==1 ( |
| 24 | + echo [MODE] C++ Profiling: ENABLED |
| 25 | +) else ( |
| 26 | + echo [MODE] C++ Profiling: DISABLED |
| 27 | +) |
8 | 28 |
|
9 | 29 | REM Clean up main build directory if it exists |
10 | 30 | echo Checking for main build directory... |
@@ -109,8 +129,13 @@ if errorlevel 1 ( |
109 | 129 | ) |
110 | 130 |
|
111 | 131 | REM Now invoke CMake with correct source path (options first, path last!) |
112 | | -echo [DIAGNOSTIC] Running CMake configure with: cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% "%SOURCE_DIR:~0,-1%" |
113 | | -cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% "%SOURCE_DIR:~0,-1%" |
| 132 | +if %PROFILING_MODE%==1 ( |
| 133 | + echo [DIAGNOSTIC] Running CMake configure with profiling: cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% -DCMAKE_CXX_FLAGS="/DENABLE_PROFILING" -DCMAKE_C_FLAGS="/DENABLE_PROFILING" "%SOURCE_DIR:~0,-1%" |
| 134 | + cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% -DCMAKE_CXX_FLAGS="/DENABLE_PROFILING" -DCMAKE_C_FLAGS="/DENABLE_PROFILING" "%SOURCE_DIR:~0,-1%" |
| 135 | +) else ( |
| 136 | + echo [DIAGNOSTIC] Running CMake configure with: cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% "%SOURCE_DIR:~0,-1%" |
| 137 | + cmake -A %PLATFORM_NAME% -DARCHITECTURE=%ARCH% "%SOURCE_DIR:~0,-1%" |
| 138 | +) |
114 | 139 | echo [DIAGNOSTIC] CMake configure exit code: %errorlevel% |
115 | 140 | if errorlevel 1 ( |
116 | 141 | echo [ERROR] CMake configuration failed |
@@ -157,22 +182,6 @@ if exist "%OUTPUT_DIR%\%PYD_NAME%" ( |
157 | 182 | echo [WARNING] PDB file !PDB_NAME! not found in output directory. |
158 | 183 | ) |
159 | 184 |
|
160 | | - setlocal enabledelayedexpansion |
161 | | - for %%I in ("%SOURCE_DIR%..") do ( |
162 | | - set PARENT_DIR=%%~fI |
163 | | - ) |
164 | | - echo [DIAGNOSTIC] Parent is: !PARENT_DIR! |
165 | | - |
166 | | - set VCREDIST_DLL_PATH=!PARENT_DIR!\libs\windows\!ARCH!\vcredist\msvcp140.dll |
167 | | - echo [DIAGNOSTIC] Looking for msvcp140.dll at "!VCREDIST_DLL_PATH!" |
168 | | - |
169 | | - if exist "!VCREDIST_DLL_PATH!" ( |
170 | | - copy /Y "!VCREDIST_DLL_PATH!" "%SOURCE_DIR%\.." |
171 | | - echo [SUCCESS] Copied msvcp140.dll from !VCREDIST_DLL_PATH! to "%SOURCE_DIR%\.." |
172 | | - ) else ( |
173 | | - echo [ERROR] Could not find msvcp140.dll at "!VCREDIST_DLL_PATH!" |
174 | | - exit /b 1 |
175 | | - ) |
176 | 185 | ) else ( |
177 | 186 | echo [ERROR] Could not find built .pyd file: %PYD_NAME% |
178 | 187 | REM Exit with an error code here if the .pyd file is not found |
|
0 commit comments