Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[build] Pre-build x86 viosock libraries as needed #1234

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions build/build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,13 @@ set TARGET_VS_CONFIG="%TARGET_PROJ_CONFIG% %BUILD_FLAVOR%|%BUILD_ARCH%"
pushd %BUILD_DIR%
call "%~dp0\SetVsEnv.bat" %TARGET_PROJ_CONFIG%

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" (
echo Running SDV for %BUILD_FILE%, configuration %TARGET_VS_CONFIG%
call :runsdv "%TARGET_PROJ_CONFIG% %BUILD_FLAVOR%" %BUILD_ARCH%
Expand All @@ -177,6 +184,7 @@ if /I "!TAG!"=="SDV" (
echo Building %BUILD_FILE%, configuration %TARGET_VS_CONFIG%, command %BUILD_COMMAND%
call :runbuild "%TARGET_PROJ_CONFIG% %BUILD_FLAVOR%" %BUILD_ARCH%
)
:build_arch_done
popd
endlocal

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