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 libvulkan-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 + pointer ImTextureID)
      run: |
        cat > example_single_file.cpp <<'EOF'

        #define ImTextureID void*
        #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

    - name: Build with IMGUI_IMPL_VULKAN_NO_PROTOTYPES
      run: g++ -c -I. -DIMGUI_IMPL_VULKAN_NO_PROTOTYPES=1 backends/imgui_impl_vulkan.cpp

  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 }}"
          }
