diff --git a/ciolib/CMakeLists.txt b/ciolib/CMakeLists.txt
index cfd1cc517bc3256c424d72f927dc4b44b7630775..eff257cadc61f8c6ba5468ecaa7ed4f4ee2c2fd8 100644
--- a/ciolib/CMakeLists.txt
+++ b/ciolib/CMakeLists.txt
@@ -9,8 +9,11 @@ find_package(X11)
 # ncurses.h
 set(CURSES_NEED_WIDE TRUE)
 find_package(Threads REQUIRED)
-find_package(Curses)
-find_package(SDL2)
+if(NOT WIN32)
+	find_package(Curses)
+	find_package(PkgConfig)
+	pkg_check_modules(SDL2 sdl2)
+endif()
 
 set(SOURCE
 	allfonts.c
diff --git a/xpdev/CMakeLists.txt b/xpdev/CMakeLists.txt
index fe1855e26ac15541e8dbda15e6f53abd3f02383a..cb753fd6786b203c976dc0ef1b1475c33961e8d1 100644
--- a/xpdev/CMakeLists.txt
+++ b/xpdev/CMakeLists.txt
@@ -8,8 +8,8 @@ find_package(Threads)
 find_package(X11)
 if(NOT WIN32)
 	find_package(PkgConfig)
+	pkg_check_modules(SDL2 sdl2)
 endif()
-FIND_PACKAGE(SDL2)
 
 set(SOURCE
     conwrap.c
@@ -80,7 +80,7 @@ if(NOT WIN32)
     list(APPEND SOURCE xpsem.c)
 endif()
 
-if(SDL2_FOUND)
+if(SDL2_INCLUDE_DIRS)
 	list(APPEND SOURCE sdlfuncs.c)
 	if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 		list(APPEND SOURCE SDLMain.m)
@@ -156,7 +156,7 @@ if(HAS_SRANDOMDEV_FUNC)
 	target_compile_definitions(xpdev PRIVATE HAS_SRANDOMDEV_FUNC)
 endif()
 
-if(SDL2_FOUND)
+if(SDL2_INCLUDE_DIRS)
 	target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS})
 	set(WITH_SDL_AUDIO TRUE PARENT_SCOPE)
 endif()