# SDL cmake project-config input for CMakeLists.txt script

include(FeatureSummary)
set_package_properties(SDL3 PROPERTIES
  URL "https://www.libsdl.org/"
  DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware"
)

@PACKAGE_INIT@

set(SDL3_FOUND TRUE)
set(_sdl3_framework @SDL_FRAMEWORK@)

# Find SDL3::Headers
if(NOT TARGET SDL3::Headers)
  include("${CMAKE_CURRENT_LIST_DIR}/SDL3headersTargets.cmake")
  if(NOT CMAKE_VERSION VERSION_LESS "3.25")
    set_property(TARGET SDL3::Headers PROPERTY SYSTEM 0)
  endif()
endif()
set(SDL3_Headers_FOUND TRUE)

# Find SDL3::SDL3-shared
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3sharedTargets.cmake")
  include("${CMAKE_CURRENT_LIST_DIR}/SDL3sharedTargets.cmake")
  set(SDL3_SDL3-shared_FOUND TRUE)
endif()

macro(find_sdl3_static_dependencies)
@SDL_FIND_PKG_CONFIG_COMMANDS@
endmacro()

# Find SDL3::SDL3-static
if(_sdl3_framework)
  set(SDL3_SDL3-static_FOUND TRUE)
  find_sdl3_static_dependencies()
  find_package(SDL3-static CONFIG QUIET)
  if(SDL3_SDL3-static_FOUND AND SDL3-static_FOUND)
    set(SDL3_SDL3-static_FOUND TRUE)
  endif()
else()
  if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3staticTargets.cmake")
    set(SDL3_SDL3-static_FOUND TRUE)
    find_sdl3_static_dependencies()
    if(SDL3_SDL3-static_FOUND)
      if(ANDROID OR HAIKU)
        enable_language(CXX)
      endif()
      include("${CMAKE_CURRENT_LIST_DIR}/SDL3staticTargets.cmake")
    endif()
  endif()
endif()

if(ANDROID AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3jarTargets.cmake")
  include("${CMAKE_CURRENT_LIST_DIR}/SDL3jarTargets.cmake")
  set(SDL3_Jar_FOUND TRUE)
endif()

if(SDL3_SDL3-shared_FOUND OR SDL3_SDL3-static_FOUND)
  set(SDL3_SDL3_FOUND TRUE)
endif()

# Find SDL3::SDL3_test
if(_sdl3_framework)
  find_package(SDL3_test CONFIG QUIET)
  if(SDL3_test_FOUND)
    enable_language(OBJC)
    set(SDL3_SDL3_test_FOUND TRUE)
  endif()
else()
  if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3testTargets.cmake")
    set(SDL3_SDL3_test_FOUND TRUE)
@SDL_TEST_FIND_PKG_CONFIG_COMMANDS@
    if(SDL3_SDL3_test_FOUND)
      include("${CMAKE_CURRENT_LIST_DIR}/SDL3testTargets.cmake")
    endif()
  endif()
endif()

if(NOT SDL3_COMPONENTS AND NOT TARGET SDL3::Headers AND NOT TARGET SDL3::SDL3-shared AND NOT TARGET SDL3::SDL3-static)
    set(SDL3_FOUND FALSE)
endif()
check_required_components(SDL3)

function(_sdl_create_target_alias_compat NEW_TARGET TARGET)
  if(CMAKE_VERSION VERSION_LESS "3.18")
    # Aliasing local targets is not supported on CMake < 3.18, so make it global.
    add_library(${NEW_TARGET} INTERFACE IMPORTED)
    set_target_properties(${NEW_TARGET} PROPERTIES INTERFACE_LINK_LIBRARIES "${TARGET}")
  else()
    add_library(${NEW_TARGET} ALIAS ${TARGET})
  endif()
endfunction()

# Make sure SDL3::SDL3 always exists
if(NOT TARGET SDL3::SDL3)
  if(TARGET SDL3::SDL3-shared)
    _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-shared)
  elseif(TARGET SDL3::SDL3-static)
    _sdl_create_target_alias_compat(SDL3::SDL3 SDL3::SDL3-static)
  endif()
endif()

set(SDL3_LIBRARIES SDL3::SDL3)
set(SDL3_STATIC_LIBRARIES SDL3::SDL3-static)
set(SDL3_STATIC_PRIVATE_LIBS)

set(SDL3TEST_LIBRARY SDL3::SDL3_test)
