From 6dcb7be35f8e9b54d4a3e3c75a97ab09589e4f38 Mon Sep 17 00:00:00 2001 From: Yan Pujante Date: Sat, 7 Sep 2024 10:23:20 -0700 Subject: [PATCH] CI: amend build tests for emscripten (#7965) + Backends: GLFW: minor preemptive fix. --- .github/workflows/build.yml | 16 +++++++++++++++- backends/imgui_impl_glfw.cpp | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d43da032..f95ff43c8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -527,6 +527,7 @@ jobs: emsdk-master/emsdk update emsdk-master/emsdk install latest emsdk-master/emsdk activate latest + sudo apt-get install build-essential - name: Build example_sdl2_opengl3 with Emscripten run: | @@ -535,13 +536,26 @@ jobs: popd make -C examples/example_sdl2_opengl3 -f Makefile.emscripten - - name: Build example_glfw_wgpu + # This build compiles example_glfw_wgpu using Makefile.emscripten and Emscripten GLFW built-in implementation (-sUSE_GLFW=3) + # This ensures 2 things: the make build works, and the GLFW built-in implementation is tested + - name: Build example_glfw_wgpu with Emscripten/Makefile run: | pushd emsdk-master source ./emsdk_env.sh popd make -C examples/example_glfw_wgpu -f Makefile.emscripten + # This build compiles example_glfw_wgpu using CMakeLists.txt and Emscripten GLFW contrib port (--use-port=contrib.glfw3) + # This ensures 2 things: the CMake build works, and the GLFW contrib port is tested + - name: Build example_glfw_wgpu with Emscripten/CMake + run: | + pushd emsdk-master + source ./emsdk_env.sh + popd + emcc -v + emcmake cmake -B build -DCMAKE_BUILD_TYPE=Release examples/example_glfw_wgpu + cmake --build build + Android: runs-on: ubuntu-24.04 steps: diff --git a/backends/imgui_impl_glfw.cpp b/backends/imgui_impl_glfw.cpp index 9c6722f78..30afaf4f0 100644 --- a/backends/imgui_impl_glfw.cpp +++ b/backends/imgui_impl_glfw.cpp @@ -646,6 +646,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw // Emscripten: the same application can run on various platforms, so we detect the Apple platform at runtime // to override io.ConfigMacOSXBehaviors from its default (which is always false in Emscripten). +#ifdef __EMSCRIPTEN__ #if EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 >= 34020240817 if (emscripten::glfw3::IsRuntimePlatformApple()) { @@ -657,6 +658,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw // See https://github.com/pongasoft/emscripten-glfw/blob/v3.4.0.20240817/docs/Usage.md#the-problem-of-the-super-key emscripten::glfw3::SetSuperPlusKeyTimeouts(10, 10); } +#endif #endif bd->ClientApi = client_api;