1+ include (CMakeParseArguments)
12macro (FindLibraryAndSONAME _LIB)
3+ cmake_parse_arguments (FLAS "" "" "LIBDIRS" ${ARGN} )
4+
25 string (TOUPPER ${_LIB} _UPPERLNAME)
36 string (REGEX REPLACE "\\ -" "_" _LNAME "${_UPPERLNAME} " )
47
5- find_library (${_LNAME} _LIB ${_LIB} )
8+ find_library (${_LNAME} _LIB ${_LIB} PATHS ${FLAS_LIBDIRS} )
69 if (${_LNAME} _LIB)
710 # reduce the library name for shared linking
811
@@ -131,7 +134,7 @@ macro(CheckPipewire)
131134 if (SDL_PIPEWIRE_SHARED AND NOT HAVE_SDL_LOADSO)
132135 message_warn("You must have SDL_LoadObject() support for dynamic Pipewire loading" )
133136 endif ()
134- FindLibraryAndSONAME("pipewire-0.3" )
137+ FindLibraryAndSONAME("pipewire-0.3" LIBDIRS ${PKG_PIPEWIRE_LIBRARY_DIRS} )
135138 if (SDL_PIPEWIRE_SHARED AND PIPEWIRE_0.3_LIB AND HAVE_SDL_LOADSO)
136139 set (SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC "\" ${PIPEWIRE_0.3_LIB_SONAME}\" " )
137140 set (HAVE_PIPEWIRE_SHARED TRUE )
@@ -160,7 +163,7 @@ macro(CheckPulseAudio)
160163 if (SDL_PULSEAUDIO_SHARED AND NOT HAVE_SDL_LOADSO)
161164 message_warn("You must have SDL_LoadObject() support for dynamic PulseAudio loading" )
162165 endif ()
163- FindLibraryAndSONAME("pulse-simple" )
166+ FindLibraryAndSONAME("pulse-simple" LIBDIRS ${PKG_PULSEAUDIO_LIBRARY_DIRS} )
164167 if (SDL_PULSEAUDIO_SHARED AND PULSE_SIMPLE_LIB AND HAVE_SDL_LOADSO)
165168 set (SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "\" ${PULSE_SIMPLE_LIB_SONAME} \" " )
166169 set (HAVE_PULSEAUDIO_SHARED TRUE )
@@ -189,7 +192,7 @@ macro(CheckJACK)
189192 if (SDL_JACK_SHARED AND NOT HAVE_SDL_LOADSO)
190193 message_warn("You must have SDL_LoadObject() support for dynamic JACK audio loading" )
191194 endif ()
192- FindLibraryAndSONAME("jack" )
195+ FindLibraryAndSONAME("jack" LIBDIRS ${PKG_JACK_LIBRARY_DIRS} )
193196 if (SDL_JACK_SHARED AND JACK_LIB AND HAVE_SDL_LOADSO)
194197 set (SDL_AUDIO_DRIVER_JACK_DYNAMIC "\" ${JACK_LIB_SONAME} \" " )
195198 set (HAVE_JACK_SHARED TRUE )
@@ -218,7 +221,7 @@ macro(CheckESD)
218221 if (SDL_ESD_SHARED AND NOT HAVE_SDL_LOADSO)
219222 message_warn("You must have SDL_LoadObject() support for dynamic ESD loading" )
220223 endif ()
221- FindLibraryAndSONAME(esd)
224+ FindLibraryAndSONAME(esd LIBDIRS ${PKG_ESD_LIBRARY_DIRS} )
222225 if (SDL_ESD_SHARED AND ESD_LIB AND HAVE_SDL_LOADSO)
223226 set (SDL_AUDIO_DRIVER_ESD_DYNAMIC "\" ${ESD_LIB_SONAME} \" " )
224227 set (HAVE_ESD_SHARED TRUE )
@@ -312,7 +315,7 @@ macro(CheckSNDIO)
312315 if (SDL_SNDIO_SHARED AND NOT HAVE_SDL_LOADSO)
313316 message_warn("You must have SDL_LoadObject() support for dynamic sndio loading" )
314317 endif ()
315- FindLibraryAndSONAME("sndio" )
318+ FindLibraryAndSONAME("sndio" LIBDIRS ${PKG_SNDIO_LIBRARY_DIRS} )
316319 if (SDL_SNDIO_SHARED AND SNDIO_LIB AND HAVE_SDL_LOADSO)
317320 set (SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\" ${SNDIO_LIB_SONAME} \" " )
318321 set (HAVE_SNDIO_SHARED TRUE )
@@ -341,7 +344,7 @@ macro(CheckFusionSound)
341344 if (FUSIONSOUND_SHARED AND NOT HAVE_SDL_LOADSO)
342345 message_warn("You must have SDL_LoadObject() support for dynamic FusionSound loading" )
343346 endif ()
344- FindLibraryAndSONAME("fusionsound" )
347+ FindLibraryAndSONAME("fusionsound" LIBDIRS ${PKG_FUSIONSOUND_LIBRARY_DIRS} )
345348 if (FUSIONSOUND_SHARED AND FUSIONSOUND_LIB AND HAVE_SDL_LOADSO)
346349 set (SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "\" ${FUSIONSOUND_LIB_SONAME} \" " )
347350 set (HAVE_FUSIONSOUND_SHARED TRUE )
@@ -637,9 +640,11 @@ endmacro()
637640# - HAVE_SDL_LOADSO opt
638641macro (CheckWayland)
639642 if (SDL_WAYLAND)
640- pkg_check_modules(WAYLAND "wayland-client>=1.18" wayland-egl wayland-cursor egl "xkbcommon>=0.5.0" )
643+ set (WAYLAND_FOUND FALSE )
644+ pkg_check_modules(PKG_WAYLAND "wayland-client>=1.18" wayland-egl wayland-cursor egl "xkbcommon>=0.5.0" )
641645
642- if (WAYLAND_FOUND)
646+ if (PKG_WAYLAND_FOUND)
647+ set (WAYLAND_FOUND TRUE )
643648 find_program (WAYLAND_SCANNER NAMES wayland-scanner REQUIRED)
644649 execute_process (
645650 COMMAND ${WAYLAND_SCANNER} --version
@@ -662,8 +667,8 @@ macro(CheckWayland)
662667 endif ()
663668
664669 if (WAYLAND_FOUND)
665- target_link_directories (sdl-build -options INTERFACE "${WAYLAND_LIBRARY_DIRS } " )
666- target_include_directories (sdl-build -options INTERFACE "${WAYLAND_INCLUDE_DIRS } " )
670+ target_link_directories (sdl-build -options INTERFACE "${PKG_WAYLAND_LIBRARY_DIRS } " )
671+ target_include_directories (sdl-build -options INTERFACE "${PKG_WAYLAND_INCLUDE_DIRS } " )
667672
668673 set (HAVE_WAYLAND TRUE )
669674 set (HAVE_SDL_VIDEO TRUE )
@@ -689,36 +694,36 @@ macro(CheckWayland)
689694 if (SDL_WAYLAND_SHARED AND NOT HAVE_SDL_LOADSO)
690695 message_warn("You must have SDL_LoadObject() support for dynamic Wayland loading" )
691696 endif ()
692- FindLibraryAndSONAME(wayland-client)
693- FindLibraryAndSONAME(wayland-egl)
694- FindLibraryAndSONAME(wayland-cursor)
695- FindLibraryAndSONAME(xkbcommon)
697+ FindLibraryAndSONAME(wayland-client LIBDIRS ${PKG_WAYLAND_LIBRARY_DIRS} )
698+ FindLibraryAndSONAME(wayland-egl LIBDIRS ${PKG_WAYLAND_LIBRARY_DIRS} )
699+ FindLibraryAndSONAME(wayland-cursor LIBDIRS ${PKG_WAYLAND_LIBRARY_DIRS} )
700+ FindLibraryAndSONAME(xkbcommon LIBDIRS ${PKG_WAYLAND_LIBRARY_DIRS} )
696701 if (SDL_WAYLAND_SHARED AND WAYLAND_CLIENT_LIB AND WAYLAND_EGL_LIB AND WAYLAND_CURSOR_LIB AND XKBCOMMON_LIB AND HAVE_SDL_LOADSO)
697702 set (SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC "\" ${WAYLAND_CLIENT_LIB_SONAME} \" " )
698703 set (SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL "\" ${WAYLAND_EGL_LIB_SONAME} \" " )
699704 set (SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR "\" ${WAYLAND_CURSOR_LIB_SONAME} \" " )
700705 set (SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON "\" ${XKBCOMMON_LIB_SONAME} \" " )
701706 set (HAVE_WAYLAND_SHARED TRUE )
702707 else ()
703- list (APPEND EXTRA_LIBS ${WAYLAND_LIBRARIES } )
708+ list (APPEND EXTRA_LIBS ${PKG_WAYLAND_LIBRARIES } )
704709 endif ()
705710
706711 if (SDL_WAYLAND_LIBDECOR)
707- pkg_check_modules(LIBDECOR libdecor-0)
708- if (LIBDECOR_FOUND )
712+ pkg_check_modules(PKG_LIBDECOR libdecor-0)
713+ if (PKG_LIBDECOR )
709714 set (HAVE_WAYLAND_LIBDECOR TRUE )
710715 set (HAVE_LIBDECOR_H 1)
711- target_link_directories (sdl-build -options INTERFACE "${LIBDECOR_LIBRARY_DIRS } " )
712- target_include_directories (sdl-build -options INTERFACE "${LIBDECOR_INCLUDE_DIRS } " )
716+ target_link_directories (sdl-build -options INTERFACE "${PKG_LIBDECOR_LIBRARY_DIRS } " )
717+ target_include_directories (sdl-build -options INTERFACE "${PKG_LIBDECOR_INCLUDE_DIRS } " )
713718 if (SDL_WAYLAND_LIBDECOR_SHARED AND NOT HAVE_SDL_LOADSO)
714719 message_warn("You must have SDL_LoadObject() support for dynamic libdecor loading" )
715720 endif ()
716- FindLibraryAndSONAME(decor-0)
721+ FindLibraryAndSONAME(decor-0 LIBDIRS ${PKG_LIBDECOR_LIBRARY_DIRS} )
717722 if (SDL_WAYLAND_LIBDECOR_SHARED AND DECOR_0_LIB AND HAVE_SDL_LOADSO)
718723 set (HAVE_LIBDECOR_SHARED TRUE )
719724 set (SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR "\" ${DECOR_0_LIB_SONAME} \" " )
720725 else ()
721- list (APPEND EXTRA_LIBS ${LIBDECOR_LIBRARIES } )
726+ list (APPEND EXTRA_LIBS ${PKG_LIBDECOR_LIBRARIES } )
722727 endif ()
723728 endif ()
724729 endif ()
@@ -764,7 +769,7 @@ macro(CheckDirectFB)
764769 if (SDL_DIRECTFB_SHARED AND NOT HAVE_SDL_LOADSO)
765770 message_warn("You must have SDL_LoadObject() support for dynamic DirectFB loading" )
766771 endif ()
767- FindLibraryAndSONAME("directfb" )
772+ FindLibraryAndSONAME("directfb" LIBDIRS ${PKG_DIRECTFB_LIBRARY_DIRS} )
768773 if (SDL_DIRECTFB_SHARED AND DIRECTFB_LIB AND HAVE_SDL_LOADSO)
769774 set (SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC "\" ${DIRECTFB_LIB_SONAME} \" " )
770775 set (HAVE_DIRECTFB_SHARED TRUE )
@@ -1170,19 +1175,19 @@ macro(CheckHIDAPI)
11701175 if (SDL_HIDAPI)
11711176 if (SDL_HIDAPI_LIBUSB)
11721177 set (HAVE_LIBUSB FALSE )
1173- pkg_check_modules(LIBUSB libusb-1.0)
1174- if (LIBUSB_FOUND )
1175- check_include_file(libusb.h HAVE_LIBUSB_H ${LIBUSB_CFLAGS } )
1178+ pkg_check_modules(PKG_LIBUSB libusb-1.0)
1179+ if (PKG_LIBUSB_FOUND )
1180+ check_include_file(libusb.h HAVE_LIBUSB_H ${PKG_LIBUSB_CFLAGS } )
11761181 if (HAVE_LIBUSB_H)
11771182 set (HAVE_LIBUSB TRUE )
1178- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUSB_CFLAGS } " )
1183+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PKG_LIBUSB_CFLAGS } " )
11791184 if (HIDAPI_ONLY_LIBUSB)
1180- list (APPEND EXTRA_LIBS ${LIBUSB_LIBRARIES } )
1185+ list (APPEND EXTRA_LIBS ${PKG_LIBUSB_LIBRARIES } )
11811186 elseif (OS2)
11821187 set (SDL_LIBUSB_DYNAMIC "\" usb100.dll\" " )
11831188 else ()
11841189 # libusb is loaded dynamically, so don't add it to EXTRA_LIBS
1185- FindLibraryAndSONAME("usb-1.0" )
1190+ FindLibraryAndSONAME("usb-1.0" LIBDIRS ${PKG_LIBUSB_LIBRARY_DIRS} )
11861191 if (USB_1.0_LIB)
11871192 set (SDL_LIBUSB_DYNAMIC "\" ${USB_1.0_LIB_SONAME}\" " )
11881193 endif ()
@@ -1268,33 +1273,31 @@ endmacro()
12681273# - HAVE_SDL_LOADSO opt
12691274macro (CheckKMSDRM)
12701275 if (SDL_KMSDRM)
1271- pkg_check_modules(KMSDRM libdrm gbm egl)
1272- if (KMSDRM_FOUND AND HAVE_OPENGL_EGL)
1273- link_directories (
1274- ${KMSDRM_LIBRARY_DIRS}
1275- )
1276- target_include_directories (sdl-build -options INTERFACE "${KMSDRM_INCLUDE_DIRS} " )
1276+ pkg_check_modules(PKG_KMSDRM libdrm gbm egl)
1277+ if (PKG_KMSDRM_FOUND AND HAVE_OPENGL_EGL)
1278+ target_link_directories (sdl-build -options INTERFACE ${PKG_KMSDRM_LIBRARY_DIRS} )
1279+ target_include_directories (sdl-build -options INTERFACE "${PKG_KMSDRM_INCLUDE_DIRS} " )
12771280 set (HAVE_KMSDRM TRUE )
12781281 set (HAVE_SDL_VIDEO TRUE )
12791282
12801283 file (GLOB KMSDRM_SOURCES ${SDL2_SOURCE_DIR} /src/video/kmsdrm/*.c)
12811284 list (APPEND SOURCE_FILES ${KMSDRM_SOURCES} )
12821285
1283- list (APPEND EXTRA_CFLAGS ${KMSDRM_CFLAGS } )
1286+ list (APPEND EXTRA_CFLAGS ${PKG_KMSDRM_CFLAGS } )
12841287
12851288 set (SDL_VIDEO_DRIVER_KMSDRM 1)
12861289
12871290 if (SDL_KMSDRM_SHARED AND NOT HAVE_SDL_LOADSO)
12881291 message_warn("You must have SDL_LoadObject() support for dynamic KMS/DRM loading" )
12891292 endif ()
12901293 if (SDL_KMSDRM_SHARED AND HAVE_SDL_LOADSO)
1291- FindLibraryAndSONAME(drm)
1292- FindLibraryAndSONAME(gbm)
1294+ FindLibraryAndSONAME(drm LIBDIRS ${PKG_KMSDRM_LIBRARY_DIRS} )
1295+ FindLibraryAndSONAME(gbm LIBDIRS ${PKG_KMSDRM_LIBRARY_DIRS} )
12931296 set (SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC "\" ${DRM_LIB_SONAME} \" " )
12941297 set (SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM "\" ${GBM_LIB_SONAME} \" " )
12951298 set (HAVE_KMSDRM_SHARED TRUE )
12961299 else ()
1297- list (APPEND EXTRA_LIBS ${KMSDRM_LIBRARIES } )
1300+ list (APPEND EXTRA_LIBS ${PKG_KMSDRM_LIBRARIES } )
12981301 endif ()
12991302 endif ()
13001303 endif ()
0 commit comments