name: Build on Windows with MSVC on: push: branches: - '*' paths: - .github/workflows/build-windows-msvc.yml - build/CMakeLists.txt - build/cmake_modules/** - daemon/** - i18n/** - libi2pd/** - libi2pd_client/** - Win32/** tags: - '*' pull_request: branches: - '*' jobs: build: name: Build runs-on: windows-latest env: boost_path: ${{ github.workspace }}\boost_1_83_0 openssl_path: ${{ github.workspace }}\openssl_3_2_1 strategy: fail-fast: false steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Build and install zlib run: | powershell -Command "(Invoke-WebRequest -Uri https://raw.githubusercontent.com/r4sas/zlib.install/master/install.bat -OutFile install_zlib.bat)" powershell -Command "(Get-Content install_zlib.bat) | Set-Content install_zlib.bat" # fixing line endings set BUILD_TYPE=Debug ./install_zlib.bat set BUILD_TYPE=Release ./install_zlib.bat del install_zlib.bat - name: Install Boost run: | powershell -Command "(Start-BitsTransfer -Source https://sourceforge.net/projects/boost/files/boost-binaries/1.83.0/boost_1_83_0-msvc-14.3-64.exe/download -Destination boost_1_83_0-msvc-14.3-64.exe)" ./boost_1_83_0-msvc-14.3-64.exe /DIR="${{env.boost_path}}" /VERYSILENT /SUPPRESSMSGBOXES /SP- - name: Install OpenSSL run: | powershell -Command "(Start-BitsTransfer -Source https://slproweb.com/download/Win64OpenSSL-3_2_1.exe -Destination Win64OpenSSL-3_2_1.exe)" ./Win64OpenSSL-3_2_1.exe /DIR="${{env.openssl_path}}" /TASKS="copytobin" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- - name: Make copy of the OpenSSL libraries for CMake run: | dir ${{ github.workspace }} dir ${{env.openssl_path}}\lib\VC dir ${{env.openssl_path}}\lib\VC\x64\ dir ${{env.openssl_path}}\lib\VC\x64\MTd\ xcopy /s /y "${{env.openssl_path}}\lib\VC\x64\MTd" "${{env.openssl_path}}\lib" - name: Configure working-directory: build run: cmake -DBoost_ROOT="${{env.boost_path}}" -DOPENSSL_ROOT_DIR="${{env.openssl_path}}" -DWITH_STATIC=ON . - name: Build working-directory: build run: cmake --build . --config Debug -- -m - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: i2pd-msvc path: build/Debug/i2pd.*