diff options
author | Nao Pross <np@0hm.ch> | 2024-02-12 14:52:43 +0100 |
---|---|---|
committer | Nao Pross <np@0hm.ch> | 2024-02-12 14:52:43 +0100 |
commit | eda5bc26f44ee9a6f83dcf8c91f17296d7fc509d (patch) | |
tree | bc2efa38ff4e350f9a111ac87065cd7ae9a911c7 /src/imgui/.github | |
download | fsisotool-eda5bc26f44ee9a6f83dcf8c91f17296d7fc509d.tar.gz fsisotool-eda5bc26f44ee9a6f83dcf8c91f17296d7fc509d.zip |
Move into version control
Diffstat (limited to 'src/imgui/.github')
-rw-r--r-- | src/imgui/.github/FUNDING.yml | 1 | ||||
-rw-r--r-- | src/imgui/.github/ISSUE_TEMPLATE/config.yml | 1 | ||||
-rw-r--r-- | src/imgui/.github/ISSUE_TEMPLATE/issue_template.yml | 90 | ||||
-rw-r--r-- | src/imgui/.github/pull_request_template.md | 6 | ||||
-rw-r--r-- | src/imgui/.github/workflows/build.yml | 507 | ||||
-rw-r--r-- | src/imgui/.github/workflows/scheduled.yml | 15 | ||||
-rw-r--r-- | src/imgui/.github/workflows/static-analysis.yml | 46 |
7 files changed, 666 insertions, 0 deletions
diff --git a/src/imgui/.github/FUNDING.yml b/src/imgui/.github/FUNDING.yml new file mode 100644 index 0000000..2aa08b4 --- /dev/null +++ b/src/imgui/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: ['https://github.com/ocornut/imgui/wiki/Sponsors'] diff --git a/src/imgui/.github/ISSUE_TEMPLATE/config.yml b/src/imgui/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/src/imgui/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/src/imgui/.github/ISSUE_TEMPLATE/issue_template.yml b/src/imgui/.github/ISSUE_TEMPLATE/issue_template.yml new file mode 100644 index 0000000..792d8f6 --- /dev/null +++ b/src/imgui/.github/ISSUE_TEMPLATE/issue_template.yml @@ -0,0 +1,90 @@ +name: "Ask a question, report a bug, request a feature, etc." +description: "Ask any question, discuss best practices, report a bug, request a feature." +body: + - type: markdown + attributes: + value: | + FOR FIRST-TIME USERS ISSUES COMPILING/LINKING/RUNNING or LOADING FONTS, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions) + For anything else: we are happy to use 'GitHub Issues' for many types of open-ended questions. We are encouraging 'Issues' becoming a large, centralized and cross-referenced database of Dear ImGui contents. + + Be mindful that messages are being sent to the e-mail box of "Watching" users. Try to proof-read your messages before sending them. Edits are not seen by those users. + - type: markdown + attributes: + value: | + **Prerequisites:** + - I have read [Frequently Asked Questions](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md). + - I have read [Contributing Guidelines -> General Advices](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md#getting-started--general-advice). + - I have read [Contributing Guidelines -> How to open an Issue](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md#how-to-open-an-issue). + - I have searched [Github Issues and PR](https://github.com/ocornut/imgui/issues?q=) for discussion of similar topics. + + ---- + - type: input + id: specs_version + attributes: + label: "Version/Branch of Dear ImGui:" + description: "(please specify if you have made substantial modifications to your copy)" + value: "Version 1.XX, Branch: XXX (master/docking/etc.)" + placeholder: "Version 1.XX, Branch: XXX (master/docking/etc.)" + validations: + required: true + - type: input + id: specs_backend + attributes: + label: "Back-ends:" + description: (or specify when using custom engine/back-ends) + value: "imgui_impl_XXX.cpp + imgui_impl_XXX.cpp" + placeholder: "imgui_impl_XXX.cpp + imgui_impl_XXX.cpp or n/a" + validations: + required: true + - type: input + id: specs_compiler_os + attributes: + label: "Compiler, OS:" + placeholder: "e.g. Windows 11 + MSVC 2022, macOS + Clang 12, Linux + GCC etc." + validations: + required: true + - type: textarea + id: specs_full + attributes: + label: "Full config/build information:" + placeholder: | + (If you can run, you may go to 'Demo->Tools->About Dear ImGui->Config/Build Info' to obtain detailed information that you can paste here) + validations: + required: false + - type: textarea + id: issue_description + attributes: + label: "Details:" + description: "Try to be explicit with your goals, your expectations and what you have tried. Be mindful of [The XY Problem](https://xyproblem.info). What you have in mind or in your code is not obvious to other people. People frequently discuss problems and suggest incorrect solutions without first clarifying their goals. When requesting a new feature, please describe the usage context (how you intend to use it, why you need it, etc.). If you tried something and it failed, show us what you tried. If you are reporting a bug, explain what's the bug, how does it occur, etc. If you are reporting a crash, please include a debugger callstack." + value: | + **My Issue/Question:** + + XXX _(please provide as much context as possible)_ + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: "Screenshots/Video:" + description: "Attach screenshots or gif/videos to clarify the context. They often convey useful information that is omitted by the description." + placeholder: "(You can drag files here)" + validations: + required: false + - type: textarea + id: repro_code + attributes: + label: "Minimal, Complete and Verifiable Example code:" + description: "Provide an [MCVE](https://stackoverflow.com/help/mcve) to demonstrate your problem. An ideal submission includes a small piece of code that anyone can paste into one of the examples applications (examples/*/main.cpp) or the demo (imgui_demo.cpp) to understand and reproduce it. Narrowing your problem to its shortest and purest form is the easiest way to understand it, explain it and fix it. Please test your shortened code to ensure it exhibits the problem. Often while creating the MCVE you will solve the problem! Many questions that are missing a standalone verifiable example are missing the actual cause of their issue in the description, which ends up wasting everyone's time." + value: | + ```cpp + // Here's some code anyone can copy and paste to reproduce your issue + ImGui::Begin("Example Bug"); + MoreCodeToExplainMyIssue(); + ImGui::End(); + ``` + validations: + required: false + - type: markdown + attributes: + value: | + Thank you for taking the time to read prerequisites, filling this template and double-checking your message and your code! diff --git a/src/imgui/.github/pull_request_template.md b/src/imgui/.github/pull_request_template.md new file mode 100644 index 0000000..638545b --- /dev/null +++ b/src/imgui/.github/pull_request_template.md @@ -0,0 +1,6 @@ +(Click "Preview" to turn any http URL into a clickable link) + +1. PLEASE CAREFULLY READ: [Contributing Guidelines](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md) + +2. Clear this template before submitting your PR. + diff --git a/src/imgui/.github/workflows/build.yml b/src/imgui/.github/workflows/build.yml new file mode 100644 index 0000000..45688c4 --- /dev/null +++ b/src/imgui/.github/workflows/build.yml @@ -0,0 +1,507 @@ +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@v3 + + - name: Install Dependencies + shell: powershell + run: | + Invoke-WebRequest -Uri "https://www.libsdl.org/release/SDL2-devel-2.26.3-VC.zip" -OutFile "SDL2-devel-2.26.3-VC.zip" + Expand-Archive -Path SDL2-devel-2.26.3-VC.zip + echo "SDL2_DIR=$(pwd)\SDL2-devel-2.26.3-VC\SDL2-2.26.3\" >>${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: | + # CI workers do not supporter older Visual Studio versions. Fix projects to target newer available version. + gci -recurse -filter "*.vcxproj" | ForEach-Object { + (Get-Content $_.FullName) -Replace "<PlatformToolset>v\d{3}</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName + (Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>[\d\.]+</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 (mingw 64-bit, as DLL) + shell: bash + run: | + 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 + g++ -I. -Wall -Wformat -D_EXPORT -shared -o libimgui.dll -Wl,--out-implib,libimgui.a example_single_file.cpp -limm32 + g++ -I. -Wall -Wformat -o example_null.exe examples/example_null/main.cpp -L. -limgui + rm -f example_null.exe libimgui.* example_single_file.* + + - 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_sdl2_vulkan + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj /p:Platform=Win32 /p:Configuration=Release' + if: github.event_name == 'workflow_run' + + - name: Build Win32 example_sdl2_opengl2 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj /p:Platform=Win32 /p:Configuration=Release' + if: github.event_name == 'workflow_run' + + - name: Build Win32 example_sdl2_opengl3 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj /p:Platform=Win32 /p:Configuration=Release' + + - name: Build Win32 example_sdl2_directx11 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_directx11/example_sdl2_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_sdl2_vulkan + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj /p:Platform=x64 /p:Configuration=Release' + if: github.event_name == 'workflow_run' + + - name: Build x64 example_sdl2_opengl2 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj /p:Platform=x64 /p:Configuration=Release' + if: github.event_name == 'workflow_run' + + - name: Build x64 example_sdl2_opengl3 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj /p:Platform=x64 /p:Configuration=Release' + if: github.event_name == 'workflow_run' + + - name: Build x64 example_sdl2_directx11 + shell: cmd + run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_directx11/example_sdl2_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-22.04 + steps: + - uses: actions/checkout@v3 + + - 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 (extra warnings, empty IM_ASSERT) + run: | + cat > example_single_file.cpp <<'EOF' + + #define IM_ASSERT(x) + #define IMGUI_IMPLEMENTATION + #include "misc/single_file/imgui_single_file.h" + #include "examples/example_null/main.cpp" + + EOF + g++ -I. -std=c++11 -Wall -Wformat -Wextra -Werror -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros -Wno-empty-body -o example_single_file example_single_file.cpp + + - 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. -std=c++11 -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. -std=c++11 -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. -std=c++11 -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. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp + + - name: Build example_null (with IMGUI_DISABLE_OBSOLETE_KEYIO) + run: | + cat > example_single_file.cpp <<'EOF' + + #define IMGUI_DISABLE_OBSOLETE_KEYIO + #define IMGUI_IMPLEMENTATION + #include "misc/single_file/imgui_single_file.h" + #include "examples/example_null/main.cpp" + + EOF + g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp + + - name: Build example_null (with IMGUI_DISABLE_DEMO_WINDOWS and IMGUI_DISABLE_DEBUG_TOOLS) + run: | + cat > example_single_file.cpp <<'EOF' + + #define IMGUI_DISABLE_DEMO_WINDOWS + #define IMGUI_DISABLE_DEBUG_TOOLS + #define IMGUI_IMPLEMENTATION + #include "misc/single_file/imgui_single_file.h" + #include "examples/example_null/main.cpp" + + EOF + g++ -I. -std=c++11 -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. -std=c++11 -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. -std=c++11 -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. -std=c++11 -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. -std=c++11 -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_sdl2_opengl2 + run: make -C examples/example_sdl2_opengl2 + if: github.event_name == 'workflow_run' + + - name: Build example_sdl2_opengl3 + run: make -C examples/example_sdl2_opengl3 + + - name: Build with IMGUI_IMPL_VULKAN_NO_PROTOTYPES + run: g++ -c -I. -std=c++11 -DIMGUI_IMPL_VULKAN_NO_PROTOTYPES=1 backends/imgui_impl_vulkan.cpp + + MacOS: + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + + - 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. -std=c++11 -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. -std=c++11 -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_sdl2_metal + run: make -C examples/example_sdl2_metal + + - name: Build example_sdl2_opengl2 + run: make -C examples/example_sdl2_opengl2 + if: github.event_name == 'workflow_run' + + - name: Build example_sdl2_opengl3 + run: make -C examples/example_sdl2_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@v3 + + - 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-22.04 + steps: + - uses: actions/checkout@v3 + + - 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_sdl2_opengl3 with Emscripten + run: | + pushd emsdk-master + source ./emsdk_env.sh + popd + make -C examples/example_sdl2_opengl3 -f Makefile.emscripten + + - name: Build example_emscripten_wgpu + run: | + pushd emsdk-master + source ./emsdk_env.sh + popd + make -C examples/example_emscripten_wgpu + + Android: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + + - name: Build example_android_opengl3 + run: | + cd examples/example_android_opengl3/android + gradle assembleDebug --stacktrace diff --git a/src/imgui/.github/workflows/scheduled.yml b/src/imgui/.github/workflows/scheduled.yml new file mode 100644 index 0000000..2a08578 --- /dev/null +++ b/src/imgui/.github/workflows/scheduled.yml @@ -0,0 +1,15 @@ +# +# This is a dummy workflow used to trigger scheduled builds. Forked repositories most likely should disable this +# workflow to avoid daily builds of inactive repositories. +# +name: scheduled + +on: + schedule: + - cron: '0 9 * * *' + +jobs: + scheduled: + runs-on: ubuntu-latest + steps: + - run: exit 0 diff --git a/src/imgui/.github/workflows/static-analysis.yml b/src/imgui/.github/workflows/static-analysis.yml new file mode 100644 index 0000000..caa9b3a --- /dev/null +++ b/src/imgui/.github/workflows/static-analysis.yml @@ -0,0 +1,46 @@ +name: static-analysis + +on: + workflow_run: + # Perform static analysis together with build workflow. Build triggers of "build" workflow do not need to be repeated here. + workflows: + - build + types: + - requested + +jobs: + PVS-Studio: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Install Dependencies + env: + # The Secret variable setup in GitHub must be in format: "name_or_email key", on a single line + PVS_STUDIO_LICENSE: ${{ secrets.PVS_STUDIO_LICENSE }} + run: | + if [[ "$PVS_STUDIO_LICENSE" != "" ]]; + then + wget -q https://files.viva64.com/etc/pubkey.txt + sudo apt-key add pubkey.txt + sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list + sudo apt-get update + sudo apt-get install -y pvs-studio + pvs-studio-analyzer credentials -o pvs-studio.lic $PVS_STUDIO_LICENSE + fi + + - name: PVS-Studio static analysis + run: | + if [[ ! -f pvs-studio.lic ]]; + then + echo "PVS Studio license is missing. No analysis will be performed." + echo "If you have a PVS Studio license please create a project secret named PVS_STUDIO_LICENSE with your license." + echo "You may use a free license. More information at https://www.viva64.com/en/b/0457/" + exit 0 + fi + cd examples/example_null + pvs-studio-analyzer trace -- make WITH_EXTRA_WARNINGS=1 + pvs-studio-analyzer analyze -e ../../imstb_rectpack.h -e ../../imstb_textedit.h -e ../../imstb_truetype.h -l ../../pvs-studio.lic -o pvs-studio.log + plog-converter -a 'GA:1,2;OP:1' -d V1071 -t errorfile -w pvs-studio.log |