Skip to content

Commit

Permalink
[build] Pre-build x86 viosock libraries as needed
Browse files Browse the repository at this point in the history
Addendum to cec3f9c.

1. Refactored following review to a new file: prebuild_x86_libs.bat

Split from PR virtio-win#1212.

Signed-off-by: benyamin-codez <[email protected]>
  • Loading branch information
benyamin-codez committed Dec 27, 2024
1 parent cec3f9c commit f290abf
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 34 deletions.
39 changes: 5 additions & 34 deletions build/build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -165,40 +165,11 @@ set TARGET_VS_CONFIG="%TARGET_PROJ_CONFIG% %BUILD_FLAVOR%|%BUILD_ARCH%"
pushd %BUILD_DIR%
call "%~dp0\SetVsEnv.bat" %TARGET_PROJ_CONFIG%

rem Check for x86 viosock libraries and build them if needed...
if "%BUILD_FILE%"=="virtio-win.sln" (
set VIOSOCK_PREBUILD_X86_LIBS=1
)
if "%BUILD_FILE%"=="viosock.sln" (
set VIOSOCK_PREBUILD_X86_LIBS=1
)
if "%VIOSOCK_PREBUILD_X86_LIBS%" EQU "1" (
if %BUILD_ARCH%==x64 (
if not exist "%BUILD_DIR%viosock\lib\x86\%TARGET%%BUILD_FLAVOR%\viosocklib.dll" (
echo.
echo ATTENTION ^: Need to build x86 viosock libraries before building for amd64...
setlocal
set VIRTIO_WIN_NO_ARM=1
if "%BUILD_FILE%"=="virtio-win.sln" (
pushd "%BUILD_DIR%viosock\lib"
)
if "%BUILD_FILE%"=="viosock.sln" (
pushd "%BUILD_DIR%lib"
)
call ..\..\build\build.bat viosocklib.vcxproj %TARGET% x86
if ERRORLEVEL 1 (
set BUILD_FAILED=1
)
popd
if "%BUILD_FAILED%" EQU "1" (
goto :build_arch_done
)
echo Successfully built the x86 viosock libraries.
echo.
echo Continuing with amd64 build...
endlocal
)
)
rem Check for any prerequisite x86 libraries and build them if needed...
call "%~dp0prebuild_x86_libs.bat" %BUILD_FILE% %BUILD_ARCH% "%BUILD_DIR%" %TARGET% %BUILD_FLAVOUR%
IF ERRORLEVEL 1 (
set BUILD_FAILED=1
goto :build_arch_done
)

if /I "!TAG!"=="SDV" (
Expand Down
60 changes: 60 additions & 0 deletions build/prebuild_x86_libs.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
@echo off
setlocal
rem Check for x86 viosock libraries and build them if needed...
call :do_viosock %*
if ERRORLEVEL 1 (
endlocal
exit /B 1
)
endlocal
goto :eof

:do_viosock
rem Lay up some variables
set BUILD_FILE=%~1
set BUILD_ARCH=%~2
set BUILD_DIR=%~3
set TARGET=%~4
set BUILD_FLAVOUR=%~5
set VIOSOCK_PREBUILD_X86_LIBS=
set BUILD_FAILED=

rem Which solutions need this?
if "%BUILD_FILE%"=="virtio-win.sln" (
set VIOSOCK_PREBUILD_X86_LIBS=1
)
if "%BUILD_FILE%"=="viosock.sln" (
set VIOSOCK_PREBUILD_X86_LIBS=1
)

if "%VIOSOCK_PREBUILD_X86_LIBS%" EQU "1" (
rem Only proceed if we are building for x64
if %BUILD_ARCH%==x64 (
rem Check for x86 viosock libraries and build them if needed...
if not exist "%BUILD_DIR%viosock\lib\x86\%TARGET%%BUILD_FLAVOR%\viosocklib.dll" (
echo.
echo ATTENTION ^: Need to build x86 viosock libraries before building for amd64...
setlocal
set VIRTIO_WIN_NO_ARM=1
if "%BUILD_FILE%"=="virtio-win.sln" (
pushd "%BUILD_DIR%viosock\lib"
)
if "%BUILD_FILE%"=="viosock.sln" (
pushd "%BUILD_DIR%lib"
)
call ..\..\build\build.bat viosocklib.vcxproj %TARGET% x86
if ERRORLEVEL 1 (
set BUILD_FAILED=1
)
popd
if "%BUILD_FAILED%" EQU "1" (
exit /B 1
)
echo Successfully built the x86 viosock libraries.
echo.
echo Continuing with amd64 build...
endlocal
)
)
)
goto :eof

0 comments on commit f290abf

Please sign in to comment.