diff --git a/.dockers/windows-vs-32/Dockerfile b/.dockers/windows-vs-32/Dockerfile new file mode 100644 index 00000000..a793d935 --- /dev/null +++ b/.dockers/windows-vs-32/Dockerfile @@ -0,0 +1,61 @@ +# escape=` + +# Use the latest Windows Server Core image with .NET Framework 4.8. +FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 + +# Restore the default Windows shell for correct batch processing. +SHELL ["cmd", "/S", "/C"] + +# Download the Build Tools bootstrapper. +ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe + +RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache ` + --installPath C:\BuildTools ` + --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended ` + || IF "%ERRORLEVEL%"=="3010" EXIT 0 + +# -------------- +# Boost Section +# -------------- + +WORKDIR C:\ +RUN powershell -Command iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) +RUN powershell -Command Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') +RUN choco install -y git.install +RUN choco install -y python --version 3.8.3 + +# chocolaty install of openssl 1.1.1 +# RUN choco install -y openssl --x86 --version 1.1.1.700 +# RUN mklink /D "OpenSSL" "Program Files (x86)\\OpenSSL-Win32" +# RUN copy "C:\\OpenSSL\\lib\\libcrypto.lib" "C:\\OpenSSL\\lib\\libeay32.lib" +# RUN copy "C:\\OpenSSL\\lib\\libssl.lib" "C:\\OpenSSL\\lib\\ssleay32.lib" + +# scoop install of openssl 1.0.2u +# RUN powershell -Command scoop install openssl@1.0.2u -a 32bit -g +# RUN mklink /D "OpenSSL" "ProgramData\\scoop\\apps\\openssl\\current" + +# scoop install of openssl 1.1.1g +RUN powershell -Command scoop install openssl@1.1.1g -a 32bit -g +RUN mklink /D "OpenSSL" "ProgramData\\scoop\\apps\\openssl\\current" +RUN copy "C:\\OpenSSL\\lib\\libcrypto.lib" "C:\\OpenSSL\\lib\\libeay32.lib" +RUN copy "C:\\OpenSSL\\lib\\libssl.lib" "C:\\OpenSSL\\lib\\ssleay32.lib" + +RUN mkdir C:\devel + +WORKDIR C:\devel +RUN git.exe clone -b develop https://github.com/boostorg/boost.git + +WORKDIR C:\devel\boost +RUN git.exe submodule update --init --recursive +COPY . C:\devel\boost\libs\beast\ +COPY ".dockers\\windows-vs-32\\user-config.jam" C:\devel\boost\ +COPY ".dockers\\windows-vs-32\\tests.bat" C:\devel\boost\ + +RUN C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars32.bat && bootstrap.bat +RUN C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars32.bat && b2 variant=release cxxstd=latest headers + +# Choose one of the following two lines. The second will succeed regardless of the test results, if you'd prefer the build to complete. +# RUN C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars32.bat && set OPENSSL_ROOT=C:/OpenSSL&& tests.bat +RUN C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars32.bat && set OPENSSL_ROOT=C:/OpenSSL&& tests.bat || ver>nul + +ENTRYPOINT ["C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars32.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] diff --git a/.dockers/windows-vs-32/README.md b/.dockers/windows-vs-32/README.md new file mode 100644 index 00000000..a4dc437f --- /dev/null +++ b/.dockers/windows-vs-32/README.md @@ -0,0 +1,8 @@ + +Build docker image from root directory of the repository: + +``` +docker -f .dockers\windows-vs-32\Dockerfile . +``` + + diff --git a/.dockers/windows-vs-32/tests.bat b/.dockers/windows-vs-32/tests.bat new file mode 100644 index 00000000..ba672c66 --- /dev/null +++ b/.dockers/windows-vs-32/tests.bat @@ -0,0 +1,13 @@ + +set PROCESSORS=%NUMBER_OF_PROCESSORS% + +REM Optionally throttle cpus: +REM if %PROCESSORS% GTR 2 set PROCESSORS=2 + +b2 --user-config=user-config.jam ^ + asio.mode=dflt,nodep,nots,ts,nodep-nots,nodep-ts ^ + variant=release ^ + cxxstd=2a,17,14,11 ^ + -j%PROCESSORS% ^ + -q ^ + libs/beast/test libs/beast/example diff --git a/.dockers/windows-vs-32/user-config.jam b/.dockers/windows-vs-32/user-config.jam new file mode 100644 index 00000000..b1aa713d --- /dev/null +++ b/.dockers/windows-vs-32/user-config.jam @@ -0,0 +1,23 @@ +import feature ; + +feature.feature asio.mode : dflt nodep nots ts nodep-nots nodep-ts : propagated composite ; +feature.compose nodep : "BOOST_ASIO_NO_DEPRECATED" ; +feature.compose nots : "BOOST_ASIO_NO_TS_EXECUTORS" ; +feature.compose ts : "BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT" ; +feature.compose nodep-nots : "BOOST_ASIO_NO_DEPRECATED" "BOOST_ASIO_NO_TS_EXECUTORS" ; +feature.compose nodep-ts : "BOOST_ASIO_NO_DEPRECATED" "BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT" ; + +#using clang : : clang++ : "libc++" "-Wno-c99-extensions" ; +#using gcc : : g++ : "-Wno-c99-extensions" ; + +import os ; + +local OPENSSL_ROOT = [ os.environ OPENSSL_ROOT ] ; + +project + : requirements + $(OPENSSL_ROOT)/include + debug:$(OPENSSL_ROOT)/lib + windowsdebug:$(OPENSSL_ROOT)/debug/lib + release:$(OPENSSL_ROOT)/lib + ;