name: MSVC

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build-with-vcpkg-integration:

    runs-on: windows-2022

    steps:
    - uses: actions/checkout@v2
    - uses: microsoft/setup-msbuild@v1.0.2
    - name: Integrate vcpkg
      run: vcpkg integrate install
    - name: Profiler GUI Debug
      run: msbuild .\profiler\build\win32\Tracy.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Profiler GUI Release
      run: msbuild .\profiler\build\win32\Tracy.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Update utility Debug
      run: msbuild .\update\build\win32\update.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Update utility Release
      run: msbuild .\update\build\win32\update.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Capture utility Debug
      run: msbuild .\capture\build\win32\capture.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Capture utility Release
      run: msbuild .\capture\build\win32\capture.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Csvexport utility Debug
      run: msbuild .\csvexport\build\win32\csvexport.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Csvexport utility Release
      run: msbuild .\csvexport\build\win32\csvexport.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Import-chrome utility Debug
      run: msbuild .\import-chrome\build\win32\import-chrome.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Import-chrome utility Release
      run: msbuild .\import-chrome\build\win32\import-chrome.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Import-fuchsia utility Debug
      run: msbuild .\import-fuchsia\build\win32\import-fuchsia.vcxproj /property:Configuration=Debug /property:Platform=x64
    - name: Import-fuchsia utility Release
      run: msbuild .\import-fuchsia\build\win32\import-fuchsia.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Library
      run: msbuild .\library\win32\TracyProfiler.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Package binaries
      run: |
        mkdir bin
        mkdir bin\dev
        copy profiler\build\win32\x64\Release\Tracy.exe bin
        copy update\build\win32\x64\Release\update.exe bin
        copy capture\build\win32\x64\Release\capture.exe bin
        copy import-chrome\build\win32\x64\Release\import-chrome.exe bin
        copy csvexport\build\win32\x64\Release\csvexport.exe bin
        copy library\win32\x64\Release\TracyProfiler.dll bin\dev
        copy library\win32\x64\Release\TracyProfiler.lib bin\dev
        7z a Tracy.7z bin
    - uses: actions/upload-artifact@v2
      with:
        path: Tracy.7z

  build-without-vcpkg-integration:

    runs-on: windows-2022

    env:
      VCPKG_ROOT: ''

    steps:
    - uses: actions/checkout@v2
    - uses: microsoft/setup-msbuild@v1.0.2
    - name: Install vcpkg dependencies
      run: vcpkg/install_vcpkg_dependencies.bat
    - name: Profiler GUI Release
      run: msbuild .\profiler\build\win32\Tracy.vcxproj /property:Configuration=Release /property:Platform=x64
    - name: Capture utility Release
      run: msbuild .\capture\build\win32\capture.vcxproj /property:Configuration=Release /property:Platform=x64
