name: libsnappy

inputs:
  refId:
    type: string
    required: true
  config:
    type: string
    required: true

runs:
  using: "composite"
  steps:
  - name: Set up GIT
    shell: cmd
    run: |
      git config --global core.autocrlf false
      git config --global core.eol lf
  - name: Checkout Snappy
    uses: actions/checkout@v3
    with:
      repository: google/snappy
      ref: ${{ inputs.refId }}
      path: snappy
  - name: Set up MSYS2
    uses: msys2/setup-msys2@v2
    with:
      install: base-devel binutils autotools automake mingw-w64-x86_64-cmake nasm
      path-type: inherit
  - name: Build Snappy
    shell: cmd
    env:
      vsPath: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\
      cFlags: ${{ inputs.config == 'release' && '-MD' || '-MDd' }}
      msbuildConfig: ${{ inputs.config == 'release' && 'Release' || 'Debug' }}
    run: |
      call "${{ env.vsPath }}VC\Auxiliary\Build\vcvars64.bat"
      md build build\include build\lib build\lib\pkgconfig dist
      cd snappy
      git submodule update --init
      md work
      cd work
      cmake -G "Visual Studio 17 2022" .. -DCMAKE_INSTALL_PREFIX=..\..\build -DBUILD_SHARED_LIBS=OFF -DSNAPPY_BUILD_TESTS=OFF
      MSBuild.exe /property:Configuration="${{ env.msbuildConfig }}" Snappy.sln
      D:\a\_temp\setup-msys2\msys2.cmd -c 'cp ${{ inputs.config }}/snappy.lib ../../build/lib/snappy.lib ; cp ../snappy.h ../snappy-c.h ../../build/include/ ; cd ../../build ; tar czf ../dist/libsnappy.tgz *'
  - name: Publish artifact
    uses: actions/upload-artifact@v2
    with:
      name: libsnappy-${{ runner.os }}-${{ inputs.config }}
      path: dist/libsnappy.tgz
