SDL: cmake: fix configuration with -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON

From 4162bddca77e5fbd7b454c9730cb54f997527974 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 15 Oct 2024 19:09:36 +0200
Subject: [PATCH] cmake: fix configuration with
 -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON

---
 cmake/sdlchecks.cmake | 51 +++++++++++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 11 deletions(-)

diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index aecb98fe5394e..48e2ad8e78196 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -135,7 +135,10 @@ endmacro()
 macro(CheckPipewire)
   if(SDL_PIPEWIRE)
     set(PipeWire_PKG_CONFIG_SPEC libpipewire-0.3>=0.3.44)
-    pkg_check_modules(PC_PIPEWIRE IMPORTED_TARGET ${PipeWire_PKG_CONFIG_SPEC})
+    set(PC_PIPEWIRE_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_PIPEWIRE IMPORTED_TARGET ${PipeWire_PKG_CONFIG_SPEC})
+    endif()
     if(PC_PIPEWIRE_FOUND)
       set(HAVE_PIPEWIRE TRUE)
       sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/pipewire/*.c")
@@ -167,7 +170,10 @@ endmacro()
 macro(CheckPulseAudio)
   if(SDL_PULSEAUDIO)
     set(PulseAudio_PKG_CONFIG_SPEC "libpulse>=0.9.15")
-    pkg_check_modules(PC_PULSEAUDIO IMPORTED_TARGET ${PulseAudio_PKG_CONFIG_SPEC})
+    set(PC_PULSEAUDIO_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_PULSEAUDIO IMPORTED_TARGET ${PulseAudio_PKG_CONFIG_SPEC})
+    endif()
     if(PC_PULSEAUDIO_FOUND)
       set(HAVE_PULSEAUDIO TRUE)
       sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/pulseaudio/*.c")
@@ -196,7 +202,10 @@ endmacro()
 macro(CheckJACK)
   if(SDL_JACK)
     set(Jack_PKG_CONFIG_SPEC jack)
-    pkg_check_modules(PC_JACK IMPORTED_TARGET ${Jack_PKG_CONFIG_SPEC})
+    set(PC_JACK_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_JACK IMPORTED_TARGET ${Jack_PKG_CONFIG_SPEC})
+    endif()
     if(PC_JACK_FOUND)
       set(HAVE_JACK TRUE)
       sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/jack/*.c")
@@ -225,7 +234,10 @@ endmacro()
 macro(CheckSNDIO)
   if(SDL_SNDIO)
     set(SndIO_PKG_CONFIG_SPEC sndio)
-    pkg_check_modules(PC_SNDIO IMPORTED_TARGET ${SndIO_PKG_CONFIG_SPEC})
+    set(PC_SNDIO_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_SNDIO IMPORTED_TARGET ${SndIO_PKG_CONFIG_SPEC})
+    endif()
     if(PC_SNDIO_FOUND)
       set(HAVE_SNDIO TRUE)
       sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/sndio/*.c")
@@ -496,7 +508,10 @@ endmacro()
 macro(CheckWayland)
   if(SDL_WAYLAND)
     set(WAYLAND_PKG_CONFIG_SPEC "wayland-client>=1.18" wayland-egl wayland-cursor egl "xkbcommon>=0.5.0")
-    pkg_check_modules(PC_WAYLAND IMPORTED_TARGET ${WAYLAND_PKG_CONFIG_SPEC})
+    set(PC_WAYLAND_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_WAYLAND IMPORTED_TARGET ${WAYLAND_PKG_CONFIG_SPEC})
+    endif()
     find_program(WAYLAND_SCANNER NAMES wayland-scanner)
 
     set(WAYLAND_FOUND FALSE)
@@ -1104,8 +1119,12 @@ macro(CheckRPI)
 
     set(original_PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH})
     set(ENV{PKG_CONFIG_PATH} "${original_PKG_CONFIG_PATH}:/opt/vc/lib/pkgconfig")
-    pkg_check_modules(PC_BCM_HOST IMPORTED_TARGET QUIET ${BCM_HOST_PKG_CONFIG_SPEC})
-    pkg_check_modules(PC_BRCMEGL IMPORTED_TARGET QUIET ${BRCMEGL_PKG_CONFIG_SPEC})
+    set(PC_BCM_HOST_FOUND FALSE)
+    set(PC_BRCMEGL_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_BCM_HOST IMPORTED_TARGET QUIET ${BCM_HOST_PKG_CONFIG_SPEC})
+      pkg_check_modules(PC_BRCMEGL IMPORTED_TARGET QUIET ${BRCMEGL_PKG_CONFIG_SPEC})
+    endif()
     set(ENV{PKG_CONFIG_PATH} "${original_PKG_CONFIG_PATH}")
 
     if(TARGET PkgConfig::PC_BCM_HOST AND TARGET PkgConfig::PC_BRCMEGL)
@@ -1125,7 +1144,10 @@ endmacro()
 macro(CheckROCKCHIP)
   if(SDL_ROCKCHIP)
     set(MALI_PKG_CONFIG_SPEC mali)
-    pkg_check_modules(PC_MALI QUIET ${MALI_PKG_CONFIG_SPEC})
+    set(PC_MALI_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_MALI QUIET ${MALI_PKG_CONFIG_SPEC})
+    endif()
     if(PC_MALI_FOUND)
       set(HAVE_ROCKCHIP TRUE)
     endif()
@@ -1146,8 +1168,12 @@ macro(CheckKMSDRM)
   if(SDL_KMSDRM)
     set(PKG_CONFIG_LIBDRM_SPEC libdrm)
     set(PKG_CONFIG_GBM_SPEC gbm)
-    pkg_check_modules(PC_LIBDRM IMPORTED_TARGET ${PKG_CONFIG_LIBDRM_SPEC})
-    pkg_check_modules(PC_GBM IMPORTED_TARGET ${PKG_CONFIG_GBM_SPEC})
+    set(PC_LIBDRM_FOUND FALSE)
+    set(PC_GBM_FOUND FALSE)
+    if(PKG_CONFIG_FOUND)
+      pkg_check_modules(PC_LIBDRM IMPORTED_TARGET ${PKG_CONFIG_LIBDRM_SPEC})
+      pkg_check_modules(PC_GBM IMPORTED_TARGET ${PKG_CONFIG_GBM_SPEC})
+    endif()
     if(PC_LIBDRM_FOUND AND PC_GBM_FOUND AND HAVE_OPENGL_EGL)
       set(HAVE_KMSDRM TRUE)
       set(HAVE_SDL_VIDEO TRUE)
@@ -1221,7 +1247,10 @@ macro(CheckLibUnwind)
 
     if(NOT found_libunwind)
       set(LibUnwind_PKG_CONFIG_SPEC libunwind libunwind-generic)
-      pkg_check_modules(PC_LIBUNWIND IMPORTED_TARGET ${LibUnwind_PKG_CONFIG_SPEC})
+      set(PC_LIBUNWIND_FOUND FALSE)
+      if(PKG_CONFIG_FOUND)
+        pkg_check_modules(PC_LIBUNWIND IMPORTED_TARGET ${LibUnwind_PKG_CONFIG_SPEC})
+      endif()
       if(PC_LIBUNWIND_FOUND)
         cmake_push_check_state()
         list(APPEND CMAKE_REQUIRED_LIBRARIES ${PC_LIBUNWIND_LIBRARIES})