find_package(SDL2 NO_MODULE QUIET)

# Adapted from libsdl-org/SDL_ttf: https://github.com/libsdl-org/SDL_ttf/blob/main/cmake/FindPrivateSDL2.cmake#L19-L31
# Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
# Licensed under the zlib license (https://github.com/libsdl-org/SDL_ttf/blob/main/LICENSE.txt)
set(SDL2_VERSION_MAJOR)
set(SDL2_VERSION_MINOR)
set(SDL2_VERSION_PATCH)
set(SDL2_VERSION)
if(SDL2_INCLUDE_DIR)
    file(READ "${SDL2_INCLUDE_DIR}/SDL_version.h" _sdl_version_h)
    string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl2_major_re "${_sdl_version_h}")
    set(SDL2_VERSION_MAJOR "${CMAKE_MATCH_1}")
    string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl2_minor_re "${_sdl_version_h}")
    set(SDL2_VERSION_MINOR "${CMAKE_MATCH_1}")
    string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl2_patch_re "${_sdl_version_h}")
    set(SDL2_VERSION_PATCH "${CMAKE_MATCH_1}")
	if(_sdl2_major_re AND _sdl2_minor_re AND _sdl2_patch_re)
		set(SDL2_VERSION "${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH}")
    endif()
endif()

if(SDL2_FOUND AND (NOT TARGET SDL2::SDL2))
	add_library(SDL2::SDL2 UNKNOWN IMPORTED GLOBAL)
	if(NOT SDL2_LIBDIR)
		set(SDL2_LIBDIR "${libdir}")
	endif()
	find_library(SDL2_LIBRARY SDL2 PATHS "${SDL2_LIBDIR}" NO_DEFAULT_PATH)
	if(SDL2_LIBRARY)
		string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
		set_target_properties(SDL2::SDL2 PROPERTIES
				IMPORTED_LOCATION "${SDL2_LIBRARY}"
				IMPORTED_LINK_INTERFACE_LIBRARIES "${SDL2_LIBRARIES}"
				INTERFACE_LINK_DIRECTORIES "${SDL2_LIBDIR}"
				INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}")
	else()
		set(SDL2_FOUND FALSE)
	endif()
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SDL2 CONFIG_MODE)