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()