SDL_shadercross: cmake: only require SDL3::SDL3-shared when building a shared SDL3_shadercross library

From 59d98c50bf539c5181737cd5f1a819be6ceada18 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Fri, 24 Jan 2025 23:36:52 +0100
Subject: [PATCH] cmake: only require SDL3::SDL3-shared when building a shared
 SDL3_shadercross library

---
 CMakeLists.txt | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b4c069b..ea4469e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,8 +20,8 @@ include("${CMAKE_CURRENT_LIST_DIR}/cmake/PrivateSdlFunctions.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlcpu.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlplatform.cmake")
 
-if(NOT TARGET SDL3::Headers OR NOT TARGET SDL3::SDL3-shared)
-    find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS Headers SDL3-shared)
+if(NOT TARGET SDL3::SDL3-static)
+    find_package(SDL3 ${SDL_REQUIRED_VERSION})
 endif()
 
 if(BUILD_SHARED_LIBS)
@@ -165,6 +165,10 @@ set(SOURCE_FILES
 set(SDL3_shadercross_targets)
 if(SDLSHADERCROSS_SHARED)
 	list(APPEND SDL3_shadercross_targets SDL3_shadercross-shared)
+	if(NOT TARGET SDL3::Headers OR NOT TARGET SDL3::SDL3-shared)
+		find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS Headers SDL3-shared)
+	endif()
+
 	add_library(SDL3_shadercross-shared SHARED ${SOURCE_FILES})
 	add_library(SDL3_shadercross::SDL3_shadercross ALIAS SDL3_shadercross-shared)
 
@@ -198,7 +202,7 @@ endif()
 
 if(SDLSHADERCROSS_STATIC)
 	list(APPEND SDL3_shadercross_targets SDL3_shadercross-static)
-	if(NOT TARGET SDL3::Headers OR NOT TARGET SDL3::SDL3)
+	if(NOT TARGET SDL3::Headers)
 		find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS Headers)
 	endif()
 
@@ -265,6 +269,9 @@ if(SDLSHADERCROSS_CLI)
 		target_link_libraries(shadercross PRIVATE SDL3_shadercross::SDL3_shadercross-static)
 		target_link_libraries(shadercross PRIVATE SDL3::SDL3-static)
 	else()
+		if(NOT TARGET SDL3::SDL3)
+			find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED CONFIG COMPONENTS SDL3)
+		endif()
 		target_link_libraries(shadercross PRIVATE SDL3_shadercross::SDL3_shadercross)
 		target_link_libraries(shadercross PRIVATE SDL3::SDL3)
 	endif()