Remove requirement for glfw 3.4

Only try to use `glfwGetPlatform()` to distinguish X11 and Wayland if
GLFW 3.4 is present. This fixes the build with older GLFW versions.

Change-Id: Ia986933eeb3f049336bcd06c71b326f92a1da284
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/93262
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn/utils/GLFWUtils.cpp b/src/dawn/utils/GLFWUtils.cpp
index 74e8c73..3ba577f 100644
--- a/src/dawn/utils/GLFWUtils.cpp
+++ b/src/dawn/utils/GLFWUtils.cpp
@@ -67,41 +67,38 @@
 std::unique_ptr<wgpu::ChainedStruct> SetupWindowAndGetSurfaceDescriptorCocoa(GLFWwindow* window);
 
 std::unique_ptr<wgpu::ChainedStruct> SetupWindowAndGetSurfaceDescriptor(GLFWwindow* window) {
-    switch (glfwGetPlatform()) {
 #if DAWN_PLATFORM_IS(WINDOWS)
-        case GLFW_PLATFORM_WIN32: {
-            std::unique_ptr<wgpu::SurfaceDescriptorFromWindowsHWND> desc =
-                std::make_unique<wgpu::SurfaceDescriptorFromWindowsHWND>();
-            desc->hwnd = glfwGetWin32Window(window);
-            desc->hinstance = GetModuleHandle(nullptr);
-            return std::move(desc);
-        }
-#endif
-#if defined(DAWN_ENABLE_BACKEND_METAL)
-        case GLFW_PLATFORM_COCOA:
-            return SetupWindowAndGetSurfaceDescriptorCocoa(window);
-#endif
-#if defined(DAWN_USE_WAYLAND)
-        case GLFW_PLATFORM_WAYLAND: {
-            std::unique_ptr<wgpu::SurfaceDescriptorFromWaylandSurface> desc =
-                std::make_unique<wgpu::SurfaceDescriptorFromWaylandSurface>();
-            desc->display = glfwGetWaylandDisplay();
-            desc->surface = glfwGetWaylandWindow(window);
-            return std::move(desc);
-        }
+    std::unique_ptr<wgpu::SurfaceDescriptorFromWindowsHWND> desc =
+        std::make_unique<wgpu::SurfaceDescriptorFromWindowsHWND>();
+    desc->hwnd = glfwGetWin32Window(window);
+    desc->hinstance = GetModuleHandle(nullptr);
+    return std::move(desc);
+#elif defined(DAWN_ENABLE_BACKEND_METAL)
+    return SetupWindowAndGetSurfaceDescriptorCocoa(window);
+#elif defined(DAWN_USE_WAYLAND) || defined(DAWN_USE_X11)
+#if defined(GLFW_PLATFORM_WAYLAND) && defined(DAWN_USE_WAYLAND)
+    if (glfwGetPlatform() == GLFW_PLATFORM_WAYLAND) {
+        std::unique_ptr<wgpu::SurfaceDescriptorFromWaylandSurface> desc =
+            std::make_unique<wgpu::SurfaceDescriptorFromWaylandSurface>();
+        desc->display = glfwGetWaylandDisplay();
+        desc->surface = glfwGetWaylandWindow(window);
+        return std::move(desc);
+    } else  // NOLINT(readability/braces)
 #endif
 #if defined(DAWN_USE_X11)
-        case GLFW_PLATFORM_X11: {
-            std::unique_ptr<wgpu::SurfaceDescriptorFromXlibWindow> desc =
-                std::make_unique<wgpu::SurfaceDescriptorFromXlibWindow>();
-            desc->display = glfwGetX11Display();
-            desc->window = glfwGetX11Window(window);
-            return std::move(desc);
-        }
-#endif
-        default:
-            return nullptr;
+    {
+        std::unique_ptr<wgpu::SurfaceDescriptorFromXlibWindow> desc =
+            std::make_unique<wgpu::SurfaceDescriptorFromXlibWindow>();
+        desc->display = glfwGetX11Display();
+        desc->window = glfwGetX11Window(window);
+        return std::move(desc);
     }
+#else
+    { return nullptr; }
+#endif
+#else
+    return nullptr;
+#endif
 }
 
 }  // namespace utils