name: C/C++ Nightly windows x64

on:
  push:
    branches:
      - Nigthly
      - nightly_dev
      - nightly_master

jobs:

  build:
    runs-on: windows-2019
    
    steps:
    - uses: actions/checkout@v1
    - uses: ilammy/msvc-dev-cmd@v1
    - name: update submodule profiles
      working-directory: ./resources/profiles
      run: git submodule update --init
    - name: change date in version
      shell: powershell
      run: (Get-Content version.inc) | Foreach-Object {$_ -replace "\+UNKNOWN", ("_" + [datetime]::Today.ToString("yyyy-MM-dd"))} | Set-Content version.inc
    - run: mkdir deps/destdir
    - name: copy deps
      working-directory: ./deps/destdir
      shell: powershell
      run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/deps_25/deps_win.zip", "deps_win.zip")'
    - name: unzip deps
      working-directory: ./deps/destdir
      shell: cmd
      run: '"C:/Program Files/7-Zip/7z.exe" x deps_win.zip'
    - run: dir deps
    - run: dir deps/destdir
    - run: dir deps/destdir/usr
    - run: mkdir msgfmt_bin
    - name: copy gettext
      working-directory: ./msgfmt_bin
      shell: powershell
      run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")'
    - name: unzip
      working-directory: ./msgfmt_bin
      shell: cmd
      run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip'
    - name: add msgfmt to path
      shell: powershell
      working-directory: msgfmt_bin
      run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
    - run: mkdir build
    - name: cmake
      working-directory: ./build
      run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local"
    - name: make
      working-directory: ./build
      run: msbuild /m /P:Configuration=RelWithDebInfo INSTALL.vcxproj
    - name: make .mo
      working-directory: ./build
      run: msbuild /m /P:Configuration=RelWithDebInfo gettext_po_to_mo.vcxproj
    - name: make .pot
      working-directory: ./build
      run: msbuild /m /P:Configuration=RelWithDebInfo gettext_make_pot.vcxproj
    - name: create directory and copy into it
      working-directory: ./build
      run: ls
    - name: create directory and copy into it
      working-directory: ./build
      shell: powershell
        #todo: add the opengl folder
      run: mkdir package
    - name: copy from release
      working-directory: ./build
      shell: powershell
      run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/1.75/Slic3r_win_build.zip", "Slic3r_win_build.zip")'
    - name: unzip
      working-directory: ./build
      shell: cmd
      run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_win_build.zip'
    - name: copy missing dll content from old release
      working-directory: ./build
      shell: cmd
      run: |
        xcopy /RCYIE Slic3r_win_build\*.dll package\
        xcopy /RCYIE Slic3r_win_build\local-settings.bat package\${{ github.event.repository.name }}_local-settings.bat
        xcopy /RCYIE Slic3r_win_build\mesa package\
    - name: copy new resources
      working-directory: ./build
      shell: cmd
      run: xcopy /RCYIE ..\resources package\resources
    - name: copy dll & exe
      working-directory: ./build
      shell: cmd
      run: |
        xcopy /RCYIE src\RelWithDebInfo\*.dll package\
        xcopy /RCYIE src\RelWithDebInfo\*.exe package\
        xcopy /RCYIE c:\windows\system32\VCRUNTIME140* package\
        del package\opengl32.dll
#    - name: create zip
#      working-directory: ./build
#      shell: cmd
#      run: '"C:/Program Files/7-Zip/7z.exe" a -tzip nightly.zip *'
    - name: Upload artifact
      uses: actions/upload-artifact@v1.0.0
      with:
        name: nightly_win64
        path: build/package/
