SDL_mixer: cmake: check existence of signal.h and setbuf for samples

From f081afec19755e4ab95142e754e490b5739994c1 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 22 Jan 2023 20:48:20 +0100
Subject: [PATCH] cmake: check existence of signal.h and setbuf for samples

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

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cae4beba..fc4b6a1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,6 +52,7 @@ else()
     set(vendored_default OFF)
 endif()
 
+include(CheckIncludeFile)
 include(CheckSymbolExists)
 include(CMakeDependentOption)
 include(CMakePackageConfigHelpers)
@@ -958,6 +959,9 @@ if(SDL2MIXER_INSTALL)
 endif()
 
 if(SDL2MIXER_SAMPLES)
+    check_include_file("signal.h" HAVE_SIGNAL_H)
+    check_symbol_exists("setbuf" "stdio.h" HAVE_SETBUF)
+
     add_executable(playmus playmus.c)
     add_executable(playwave playwave.c)
 
@@ -974,6 +978,12 @@ if(SDL2MIXER_SAMPLES)
             target_link_libraries(${prog} PRIVATE SDL2::SDL2main)
         endif()
         target_link_libraries(${prog} PRIVATE ${sdl2_target_name})
+        if(HAVE_SIGNAL_H)
+            target_compile_definitions(${prog} PRIVATE HAVE_SIGNAL_H)
+        endif()
+        if(HAVE_SETBUF)
+            target_compile_definitions(${prog} PRIVATE HAVE_SETBUF)
+        endif()
 
         if(SDL2MIXER_SAMPLES_INSTALL)
             install(TARGETS ${prog}
diff --git a/cmake/PrivateSdlFunctions.cmake b/cmake/PrivateSdlFunctions.cmake
index 0b33dd26..6f8f23cd 100644
--- a/cmake/PrivateSdlFunctions.cmake
+++ b/cmake/PrivateSdlFunctions.cmake
@@ -60,7 +60,7 @@ macro(sdl_find_sdl2 TARGET VERSION)
     # or for those installations where no target is generated.
     if (NOT TARGET ${TARGET})
         message(STATUS "Using private SDL2 find module")
-        find_package(PrivateSDL2 ${VERSION} REQUIRED)
+        find_package(PrivateSDL2 ${VERSION} REQUIRED MODULE)
         add_library(${TARGET} INTERFACE IMPORTED)
         set_target_properties(${TARGET} PROPERTIES
             INTERFACE_LINK_LIBRARIES "PrivateSDL2::PrivateSDL2"