SDL_mixer: cmake: add -Wl,--no-undefined if compiler supports it (5ec6c)

From 5ec6ceff78e0762296e785cc9cc3bbdc8da2aa80 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 26 Mar 2023 19:32:57 +0200
Subject: [PATCH] cmake: add -Wl,--no-undefined if compiler supports it

---
 CMakeLists.txt                  | 4 ++++
 cmake/PrivateSdlFunctions.cmake | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5961b26f..f6217751 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -303,6 +303,10 @@ if(SDL2MIXER_BUILD_SHARED_LIBS)
     set_property(TARGET SDL2_mixer APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL SDL2_SHARED)
 endif()
 
+if(SDL2MIXER_BUILD_SHARED_LIBS)
+    sdl_target_link_options_no_undefined(SDL2_mixer)
+endif()
+
 if(SDL2MIXER_BUILD_SHARED_LIBS)
     # Make sure static library dependencies are built with -fPIC when building a shared SDL2_mixer
     set(CMAKE_POSITION_INDEPENDENT_CODE ON)
diff --git a/cmake/PrivateSdlFunctions.cmake b/cmake/PrivateSdlFunctions.cmake
index 6f8f23cd..91a87e9e 100644
--- a/cmake/PrivateSdlFunctions.cmake
+++ b/cmake/PrivateSdlFunctions.cmake
@@ -264,7 +264,7 @@ function(sdl_target_link_options_no_undefined TARGET)
             target_link_options(${TARGET} PRIVATE "-Wl,-undefined,error")
         else()
             sdl_check_linker_flag("-Wl,--no-undefined" HAVE_WL_NO_UNDEFINED)
-            if(HAVE_WL_NO_UNDEFINED)
+            if(HAVE_WL_NO_UNDEFINED AND NOT ((CMAKE_C_COMPILER_ID MATCHES "Clang") AND WIN32))
                 target_link_options(${TARGET} PRIVATE "-Wl,--no-undefined")
             endif()
         endif()