name: Windows build on: [push, pull_request] jobs: MSVC: runs-on: windows-latest if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" env: ARCH: x64 BUILD_SHARED_LIBS: ON steps: - uses: actions/checkout@v2 - uses: ilammy/msvc-dev-cmd@v1 - name: Cache vcpkg packages uses: actions/cache@v2 id: cache with: path: c:\vcpkg\installed key: ${{ runner.os }}-vcpkg-${{ hashFiles('.github/workflows/windows.yml') }} - name: Install build requirements shell: cmd if: steps.cache.outputs.cache-hit != 'true' run: | vcpkg install sqlite3[core,tool]:${{ env.ARCH }}-windows vcpkg install tiff:${{ env.ARCH }}-windows vcpkg install curl:${{ env.ARCH }}-windows - name: Build shell: cmd run: | set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows dir %VCPKG_INSTALLED%\bin set PATH=%VCPKG_INSTALLED%\bin;%PATH% set PROJ_BUILD=%GITHUB_WORKSPACE%\build mkdir %PROJ_BUILD% cd %PROJ_BUILD% set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="{{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%" ninja -v ninja install dir %PROJ_DIR%\bin - name: Run tests shell: cmd run: | set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows set PATH=%VCPKG_INSTALLED%\bin;%PATH% set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir set PROJ_BUILD=%GITHUB_WORKSPACE%\build cd %PROJ_BUILD% ctest -V -C Release set PATH=%PROJ_DIR%\bin;%PATH% call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR% proj MSYS2: runs-on: windows-latest if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" defaults: run: shell: msys2 {0} env: CMAKE_GENERATOR: "MSYS Makefiles" steps: - uses: actions/checkout@v2 - uses: msys2/setup-msys2@v2 with: msystem: MINGW64 update: true install: >- git make mingw-w64-x86_64-cmake mingw-w64-x86_64-curl mingw-w64-x86_64-gcc mingw-w64-x86_64-libtiff mingw-w64-x86_64-sqlite3 - name: Build run: | PROJ_BUILD=${GITHUB_WORKSPACE}/build PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir mkdir ${PROJ_BUILD} cd ${PROJ_BUILD} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${PROJ_DIR}" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" .. make -j 2 make install ls ${PROJ_DIR}/bin - name: Run tests run: | PROJ_BUILD=${GITHUB_WORKSPACE}/build PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir cd ${PROJ_BUILD} ctest --output-on-failure export PATH=${PROJ_DIR}/bin:${PATH} ../test/postinstall/test_cmake.sh ${PROJ_DIR} ../test/postinstall/test_pkg-config.sh ${PROJ_DIR} proj