SDL_rtf: cmake: -Wl,-undefined,error should not be used on OpenBSD (e6b52)

From e6b5264176e878617a6ed598cfd603c8913c4545 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 14 Dec 2024 22:19:28 +0100
Subject: [PATCH] cmake: -Wl,-undefined,error should not be used on OpenBSD

---
 cmake/PrivateSdlFunctions.cmake | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/cmake/PrivateSdlFunctions.cmake b/cmake/PrivateSdlFunctions.cmake
index 3af2b11..5fde085 100644
--- a/cmake/PrivateSdlFunctions.cmake
+++ b/cmake/PrivateSdlFunctions.cmake
@@ -273,7 +273,7 @@ function(check_linker_support_version_script VAR)
 endfunction()
 
 function(sdl_target_link_options_no_undefined TARGET)
-    if(NOT MSVC)
+    if(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES ".*OpenBSD.*")
         if(CMAKE_C_COMPILER_ID MATCHES "AppleClang")
             target_link_options(${TARGET} PRIVATE "-Wl,-undefined,error")
         else()
@@ -339,3 +339,17 @@ function(sdl_get_git_revision_hash VARNAME)
     endif()
     set("${VARNAME}" "${revision}" PARENT_SCOPE)
 endfunction()
+
+function(SDL_install_pdb TARGET DIRECTORY)
+    get_property(type TARGET ${TARGET} PROPERTY TYPE)
+    if(type MATCHES "^(SHARED_LIBRARY|EXECUTABLE)$")
+        install(FILES $<TARGET_PDB_FILE:${TARGET}> DESTINATION "${DIRECTORY}" OPTIONAL)
+    elseif(type STREQUAL "STATIC_LIBRARY")
+        # FIXME: Use $<TARGET_COMPILE_PDB_FILE:${TARGET} once it becomes available (https://gitlab.kitware.com/cmake/cmake/-/issues/25244)
+        if(CMAKE_GENERATOR MATCHES "^Visual Studio.*")
+            install(CODE "file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${DIRECTORY}\" TYPE FILE OPTIONAL FILES \"${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/${TARGET}.pdb\")")
+        else()
+            install(CODE "file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${DIRECTORY}\" TYPE FILE OPTIONAL FILES \"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET}.dir/${TARGET}.pdb\")")
+        endif()
+    endif()
+endfunction()