name: build

on:
  push:
  pull_request:
  workflow_run:
    # Use a workflow as a trigger of scheduled builds. Forked repositories can disable scheduled builds by disabling
    # "scheduled" workflow, while maintaining ability to perform local CI builds.
    workflows:
      - scheduled
    branches:
      - master
      - docking
    types:
      - requested

jobs:
  Windows:
    runs-on: windows-2019
    env:
      VS_PATH: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\
      MSBUILD_PATH: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\
    steps:
      - uses: actions/checkout@v2

      - name: Install Dependencies
        shell: powershell
        run: |
          Invoke-WebRequest -Uri "https://www.libsdl.org/release/SDL2-devel-2.0.10-VC.zip" -OutFile "SDL2-devel-2.0.10-VC.zip"
          Expand-Archive -Path SDL2-devel-2.0.10-VC.zip
          echo "SDL2_DIR=$(pwd)\SDL2-devel-2.0.10-VC\SDL2-2.0.10\" >>${env:GITHUB_ENV}

          Invoke-WebRequest -Uri "https://github.com/ocornut/imgui/files/3789205/vulkan-sdk-1.1.121.2.zip" -OutFile vulkan-sdk-1.1.121.2.zip
          Expand-Archive -Path vulkan-sdk-1.1.121.2.zip
          echo "VULKAN_SDK=$(pwd)\vulkan-sdk-1.1.121.2\" >>${env:GITHUB_ENV}

      - name: Fix Projects
        shell: powershell
        run: |
          # WARNING: This will need updating if toolset/sdk change in project files!
          gci -recurse -filter "*.vcxproj" | ForEach-Object {
            # Fix SDK and toolset for most samples.
            (Get-Content $_.FullName) -Replace "<PlatformToolset>v110</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName
            (Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>","<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>" | Set-Content -Path $_.FullName
            # Fix SDK and toolset for samples that require newer SDK/toolset. At the moment it is only dx12.
            (Get-Content $_.FullName) -Replace "<PlatformToolset>v140</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName
            (Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>","<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>" | Set-Content -Path $_.FullName
          }

      # Not using matrix here because it would inflate job count too much. Check out and setup is done for every job and that makes build times way too long.
      - name: Build example_null (extra warnings, mingw 64-bit)
        run: mingw32-make -C examples/example_null WITH_EXTRA_WARNINGS=1

      - name: Build example_null (extra warnings, msvc 64-bit)
        shell: cmd
        run: |
          cd examples\example_null
          call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat"
          .\build_win32.bat /W4

      - name: Build example_null (single file build)
        shell: bash
        run: |
          cat > example_single_file.cpp <<'EOF'

          #define IMGUI_IMPLEMENTATION
          #include "misc/single_file/imgui_single_file.h"
          #include "examples/example_null/main.cpp"

          EOF
          g++ -I. -Wall -Wformat -o example_single_file.exe example_single_file.cpp -limm32

      - name: Build example_null (with IMGUI_DISABLE_WIN32_FUNCTIONS)
        shell: bash
        run: |
          cat > example_single_file.cpp <<'EOF'

          #define IMGUI_DISABLE_WIN32_FUNCTIONS
          #define IMGUI_IMPLEMENTATION
          #include "misc/single_file/imgui_single_file.h"
          #include "examples/example_null/main.cpp"

          EOF
          g++ -I. -Wall -Wformat -o example_single_file.exe example_single_file.cpp -limm32

      - name: Build example_null (as DLL)
        shell: cmd
        run: |
          call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat"

          echo #ifdef _EXPORT                                  >  example_single_file.cpp
          echo #  define IMGUI_API __declspec(dllexport)       >> example_single_file.cpp
          echo #else                                           >> example_single_file.cpp
          echo #  define IMGUI_API __declspec(dllimport)       >> example_single_file.cpp
          echo #endif                                          >> example_single_file.cpp
          echo #define IMGUI_IMPLEMENTATION                    >> example_single_file.cpp
          echo #include "misc/single_file/imgui_single_file.h" >> example_single_file.cpp

          cl.exe /D_USRDLL /D_WINDLL /D_EXPORT /I. example_single_file.cpp /LD /FeImGui.dll /link
          cl.exe /I. ImGui.lib /Feexample_null.exe examples/example_null/main.cpp

      - name: Build Win32 example_glfw_opengl2
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj /p:Platform=Win32 /p:Configuration=Release'

      - name: Build Win32 example_glfw_opengl3
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build Win32 example_glfw_vulkan
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build Win32 example_sdl_vulkan
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_vulkan/example_sdl_vulkan.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build Win32 example_sdl_opengl2
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_opengl2/example_sdl_opengl2.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build Win32 example_sdl_opengl3
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_opengl3/example_sdl_opengl3.vcxproj /p:Platform=Win32 /p:Configuration=Release'

      - name: Build Win32 example_sdl_directx11
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_directx11/example_sdl_directx11.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build Win32 example_win32_directx9
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx9/example_win32_directx9.vcxproj /p:Platform=Win32 /p:Configuration=Release'

      - name: Build Win32 example_win32_directx10
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx10/example_win32_directx10.vcxproj /p:Platform=Win32 /p:Configuration=Release'

      - name: Build Win32 example_win32_directx11
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx11/example_win32_directx11.vcxproj /p:Platform=Win32 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_glfw_opengl2
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_glfw_opengl3
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj /p:Platform=x64 /p:Configuration=Release'

      - name: Build x64 example_glfw_vulkan
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj /p:Platform=x64 /p:Configuration=Release'

      - name: Build x64 example_sdl_vulkan
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_vulkan/example_sdl_vulkan.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_sdl_opengl2
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_opengl2/example_sdl_opengl2.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_sdl_opengl3
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_opengl3/example_sdl_opengl3.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_sdl_directx11
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl_directx11/example_sdl_directx11.vcxproj /p:Platform=x64 /p:Configuration=Release'

      - name: Build x64 example_win32_directx9
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx9/example_win32_directx9.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_win32_directx10
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx10/example_win32_directx10.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_win32_directx11
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx11/example_win32_directx11.vcxproj /p:Platform=x64 /p:Configuration=Release'
        if: github.event_name == 'workflow_run'

      - name: Build x64 example_win32_directx12
        shell: cmd
        run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx12/example_win32_directx12.vcxproj /p:Platform=x64 /p:Configuration=Release'

  Linux:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2

    - name: Install Dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y libglfw3-dev libsdl2-dev gcc-multilib g++-multilib libfreetype6-dev

    - name: Build example_null (extra warnings, gcc 32-bit)
      run: |
        make -C examples/example_null clean
        CXXFLAGS="$CXXFLAGS -m32 -Werror" make -C examples/example_null WITH_EXTRA_WARNINGS=1

    - name: Build example_null (extra warnings, gcc 64-bit)
      run: |
        make -C examples/example_null clean
        CXXFLAGS="$CXXFLAGS -m64 -Werror" make -C examples/example_null WITH_EXTRA_WARNINGS=1

    - name: Build example_null (extra warnings, clang 32-bit)
      run: |
        make -C examples/example_null clean
        CXXFLAGS="$CXXFLAGS -m32 -Werror" CXX=clang++ make -C examples/example_null WITH_EXTRA_WARNINGS=1

    - name: Build example_null (extra warnings, clang 64-bit)
      run: |
        make -C examples/example_null clean
        CXXFLAGS="$CXXFLAGS -m64 -Werror" CXX=clang++ make -C examples/example_null WITH_EXTRA_WARNINGS=1

    - name: Build example_null (freetype)
      run: |
        make -C examples/example_null clean
        make -C examples/example_null WITH_FREETYPE=1

    - name: Build example_null (single file build)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with ImWchar32)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_USE_WCHAR32
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with large ImDrawIdx)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define ImDrawIdx unsigned int
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with IMGUI_DISABLE_OBSOLETE_FUNCTIONS)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with IMGUI_DISABLE_DEMO_WINDOWS and IMGUI_DISABLE_METRICS_WINDOW)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_DISABLE_DEMO_WINDOWS
        #define IMGUI_DISABLE_METRICS_WINDOW
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with IMGUI_DISABLE_FILE_FUNCTIONS)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_DISABLE_FILE_FUNCTIONS
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with IMGUI_USE_BGRA_PACKED_COLOR)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_USE_BGRA_PACKED_COLOR
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (with IM_VEC2_CLASS_EXTRA and IM_VEC4_CLASS_EXTRA)
      run: |
        cat > example_single_file.cpp <<'EOF'

        struct MyVec2 { float x; float y; MyVec2(float x, float y) : x(x), y(y) { } };
        struct MyVec4 { float x; float y; float z; float w;
        MyVec4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) { } };
        #define IM_VEC2_CLASS_EXTRA                                             \
                ImVec2(const MyVec2& f) { x = f.x; y = f.y; }                   \
                operator MyVec2() const { return MyVec2(x, y); }
        #define IM_VEC4_CLASS_EXTRA                                             \
                ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \
                operator MyVec4() const { return MyVec4(x, y, z, w); }
        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (without c++ runtime, Clang)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_IMPLEMENTATION
        #define IMGUI_DISABLE_DEMO_WINDOWS
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        clang++ -I. -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp

    - name: Build example_glfw_opengl2
      run: make -C examples/example_glfw_opengl2

    - name: Build example_glfw_opengl3
      run: make -C examples/example_glfw_opengl3
      if: github.event_name == 'workflow_run'

    - name: Build example_sdl_opengl2
      run: make -C examples/example_sdl_opengl2
      if: github.event_name == 'workflow_run'

    - name: Build example_sdl_opengl3
      run: make -C examples/example_sdl_opengl3

  MacOS:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2

    - name: Install Dependencies
      run: |
        brew install glfw3 sdl2

    - name: Build example_null (extra warnings, clang 64-bit)
      run: make -C examples/example_null WITH_EXTRA_WARNINGS=1

    - name: Build example_null (single file build)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        clang++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp

    - name: Build example_null (without c++ runtime)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define IMGUI_IMPLEMENTATION
        #include "misc/single_file/imgui_single_file.h"
        #include "examples/example_null/main.cpp"

        EOF
        clang++ -I. -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp

    - name: Build example_glfw_opengl2
      run: make -C examples/example_glfw_opengl2

    - name: Build example_glfw_opengl3
      run: make -C examples/example_glfw_opengl3
      if: github.event_name == 'workflow_run'

    - name: Build example_glfw_metal
      run: make -C examples/example_glfw_metal

    - name: Build example_sdl_metal
      run: make -C examples/example_sdl_metal

    - name: Build example_sdl_opengl2
      run: make -C examples/example_sdl_opengl2
      if: github.event_name == 'workflow_run'

    - name: Build example_sdl_opengl3
      run: make -C examples/example_sdl_opengl3

    - name: Build example_apple_metal
      run: xcodebuild -project examples/example_apple_metal/example_apple_metal.xcodeproj -target example_apple_metal_macos

    - name: Build example_apple_opengl2
      run: xcodebuild -project examples/example_apple_opengl2/example_apple_opengl2.xcodeproj -target example_osx_opengl2

  iOS:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2

    - name: Build example_apple_metal
      run: |
        # Code signing is required, but we disable it because it is irrelevant for CI builds.
        xcodebuild -project examples/example_apple_metal/example_apple_metal.xcodeproj -target example_apple_metal_ios CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

  Emscripten:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2

    - name: Install Dependencies
      run: |
        wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
        tar -xvf master.tar.gz
        emsdk-master/emsdk update
        emsdk-master/emsdk install latest
        emsdk-master/emsdk activate latest

    - name: Build example_emscripten_opengl3
      run: |
        pushd emsdk-master
        source ./emsdk_env.sh
        popd
        make -C examples/example_emscripten_opengl3

    - name: Build example_emscripten_wgpu
      run: |
        pushd emsdk-master
        source ./emsdk_env.sh
        popd
        make -C examples/example_emscripten_wgpu

  Android:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2

    - name: Build example_android_opengl3
      run: |
        cd examples/example_android_opengl3/android
        gradle assembleDebug

  Discord-CI:
    runs-on: ubuntu-18.04
    if: always()
    needs: [Windows, Linux, MacOS, iOS, Emscripten, Android]
    steps:
    - uses: dearimgui/github_discord_notifier@latest
      with:
        discord-webhook: ${{ secrets.DISCORD_CI_WEBHOOK }}
        github-token: ${{ github.token }}
        action-task: discord-jobs
        discord-filter: "'{{ github.branch }}'.match(/master|docking/g) != null && '{{ run.conclusion }}' != '{{ last_run.conclusion }}'"
        discord-username: GitHub Actions
        discord-job-new-failure-message: ''
        discord-job-fixed-failure-message: ''
        discord-job-new-failure-embed: |
          {
            "title": "`{{ job.name }}` job is failing on `{{ github.branch }}`!",
            "description": "Commit [{{ github.context.payload.head_commit.title }}]({{ github.context.payload.head_commit.url }}) pushed to [{{ github.branch }}]({{ github.branch_url }}) broke [{{ job.name }}]({{ job.url }}) build job.\nFailing steps: {{ failing_steps }}",
            "url": "{{ job.url }}",
            "color": "0xFF0000",
            "timestamp": "{{ run.updated_at }}"
          }
        discord-job-fixed-failure-embed: |
          {
            "title": "`{{ github.branch }}` branch is no longer failing!",
            "description": "Build failures were fixed on [{{ github.branch }}]({{ github.branch_url }}) branch.",
            "color": "0x00FF00",
            "url": "{{ github.context.payload.head_commit.url }}",
            "timestamp": "{{ run.completed_at }}"
          }
