From 118de862028c17dad4df97b96293ab8088323c1b Mon Sep 17 00:00:00 2001
From: pionere <[EMAIL REDACTED]>
Date: Mon, 10 Jan 2022 15:39:42 +0100
Subject: [PATCH] more conform vulkan/metal configuration
---
CMakeLists.txt | 74 +++++++++++++++++++++++++++-----------------------
1 file changed, 40 insertions(+), 34 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9689ac4166..5e0895ed7d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1152,17 +1152,19 @@ if(ANDROID)
list(APPEND EXTRA_LIBS ${OpenGLES1_LIBRARY} ${OpenGLES2_LIBRARY})
endif()
- CHECK_C_SOURCE_COMPILES("
- #if defined(__ARM_ARCH) && __ARM_ARCH < 7
- #error Vulkan doesn't work on this configuration
- #endif
- int main(void) {
- return 0;
- }
- " VULKAN_PASSED_ANDROID_CHECKS)
- if(NOT VULKAN_PASSED_ANDROID_CHECKS)
- set(SDL_VULKAN OFF)
- message(STATUS "Vulkan doesn't work on this configuration")
+ if(SDL_VULKAN)
+ CHECK_C_SOURCE_COMPILES("
+ #if defined(__ARM_ARCH) && __ARM_ARCH < 7
+ #error Vulkan doesn't work on this configuration
+ #endif
+ int main(void) {
+ return 0;
+ }
+ " VULKAN_PASSED_ANDROID_CHECKS)
+ if(VULKAN_PASSED_ANDROID_CHECKS)
+ set(SDL_VIDEO_VULKAN 1)
+ set(HAVE_VULKAN TRUE)
+ endif()
endif()
endif()
@@ -1277,6 +1279,11 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
CheckOpenGLES()
CheckWayland()
CheckVivante()
+ # FIXME: implement CheckVulkan()
+ if(SDL_VULKAN)
+ set(SDL_VIDEO_VULKAN 1)
+ set(HAVE_VULKAN TRUE)
+ endif()
endif()
if(UNIX)
@@ -1749,6 +1756,11 @@ elseif(WINDOWS)
set(SDL_VIDEO_RENDER_OGL_ES2 1)
set(HAVE_OPENGLES TRUE)
endif()
+
+ if(SDL_VULKAN)
+ set(SDL_VIDEO_VULKAN 1)
+ set(HAVE_VULKAN TRUE)
+ endif()
endif()
if(SDL_HIDAPI)
@@ -2014,24 +2026,22 @@ elseif(APPLE)
if(HAVE_FRAMEWORK_METAL)
set(SDL_FRAMEWORK_METAL 1)
set(SDL_FRAMEWORK_QUARTZCORE 1)
- else()
- set(SDL_VULKAN 0)
- set(SDL_METAL 0)
- set(SDL_RENDER_METAL 0)
+ if(SDL_VULKAN)
+ set(SDL_VIDEO_VULKAN 1)
+ set(HAVE_VULKAN TRUE)
+ endif()
+ if(SDL_METAL)
+ set(SDL_VIDEO_METAL 1)
+ set(HAVE_METAL TRUE)
+ endif()
+ if(SDL_RENDER_METAL)
+ file(GLOB RENDER_METAL_SOURCES ${SDL2_SOURCE_DIR}/src/render/metal/*.m)
+ set(SOURCE_FILES ${SOURCE_FILES} ${RENDER_METAL_SOURCES})
+ set(SDL_VIDEO_RENDER_METAL 1)
+ set(HAVE_RENDER_METAL TRUE)
+ endif()
endif()
endif()
-
- if(SDL_METAL)
- set(SDL_VIDEO_METAL 1)
- set(HAVE_METAL TRUE)
- endif()
-
- if(SDL_RENDER_METAL)
- file(GLOB RENDER_METAL_SOURCES ${SDL2_SOURCE_DIR}/src/render/metal/*.m)
- set(SOURCE_FILES ${SOURCE_FILES} ${RENDER_METAL_SOURCES})
- set(SDL_VIDEO_RENDER_METAL 1)
- set(HAVE_RENDER_METAL TRUE)
- endif()
endif()
# Actually load the frameworks at the end so we don't duplicate include.
@@ -2521,14 +2531,10 @@ elseif(OS2)
endif()
endif()
-if(SDL_VULKAN AND NOT SDL_LOADSO)
+if(HAVE_VULKAN AND NOT SDL_LOADSO)
message(STATUS "Vulkan support is available, but disabled because there's no loadso.")
- set(SDL_VULKAN OFF)
-endif()
-
-if(SDL_VULKAN)
- set(SDL_VIDEO_VULKAN 1)
- set(HAVE_VULKAN TRUE)
+ set(HAVE_VULKAN FALSE)
+ set(SDL_VIDEO_VULKAN 0)
endif()
# Dummies