76 lines
3 KiB
CMake
76 lines
3 KiB
CMake
# sdl3_shadercross cmake project-config input for CMakeLists.txt script
|
|
|
|
include(FeatureSummary)
|
|
set_package_properties(SDL3_shadercross PROPERTIES
|
|
URL "https://github.com/libsdl-org/SDL_shadercross/"
|
|
DESCRIPTION "Support SPIR-V and HLSL on various backends"
|
|
)
|
|
|
|
@PACKAGE_INIT@
|
|
|
|
set(SDLSHADERCROSS_VENDORED @SDLSHADERCROSS_VENDORED@)
|
|
set(SDLSHADERCROSS_SPIRVCROSS_SHARED @SDLSHADERCROSS_SPIRVCROSS_SHARED@)
|
|
|
|
set(SDL3_shadercross_FOUND ON)
|
|
|
|
set(SDL3_gpu_SHADERCROSS_REQUIRED_VERSION @SDL_REQUIRED_VERSION@)
|
|
|
|
if(SDLSHADERCROSS_VENDORED)
|
|
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_shadercross-vendored-targets.cmake")
|
|
endif()
|
|
|
|
set(SDL3_shadercross_SDL3_shadercross-shared_FOUND FALSE)
|
|
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_shadercross-shared-targets.cmake")
|
|
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_shadercross-shared-targets.cmake")
|
|
set(SDL3_shadercross_SDL3_shadercross-shared_FOUND TRUE)
|
|
endif()
|
|
|
|
set(SDL3_shadercross_SDL3_shadercross-static FALSE)
|
|
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_shadercross-static-targets.cmake")
|
|
if(NOT SDLSHADERCROSS_VENDORED)
|
|
set(original_cmake_module_path "${CMAKE_MODULE_PATH}")
|
|
include(CMakeFindDependencyMacro)
|
|
|
|
if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
|
|
find_dependency(spirv_cross_c_shared REQUIRED)
|
|
else()
|
|
find_package(spirv_cross_core QUIET)
|
|
find_package(spirv_cross_glsl QUIET)
|
|
find_package(spirv_cross_hlsl QUIET)
|
|
find_package(spirv_cross_msl QUIET)
|
|
find_package(spirv_cross_cpp QUIET)
|
|
find_package(spirv_cross_reflect QUIET)
|
|
find_package(spirv_cross_c)
|
|
endif()
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
|
include("${CMAKE_CURRENT_LIST_DIR}/sdlcpu.cmake")
|
|
SDL_DetectTargetCPUArchitectures(SDL_CPU_NAMES)
|
|
find_dependency(DirectXShaderCompiler)
|
|
|
|
set(CMAKE_MODULE_PATH "${original_cmake_module_path}")
|
|
endif()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_shadercross-static-targets.cmake")
|
|
set(SDL3_shadercross_SDL3_shadercross-static_FOUND TRUE)
|
|
endif()
|
|
|
|
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_shadercross::SDL3_shadercross always exists
|
|
if(NOT TARGET SDL3_shadercross::SDL3_shadercross)
|
|
if(TARGET SDL3_shadercross::SDL3_shadercross-shared)
|
|
_sdl_create_target_alias_compat(SDL3_shadercross::SDL3_shadercross SDL3_shadercross::SDL3_shadercross-shared)
|
|
elseif(TARGET SDL3_shadercross::SDL3_shadercross-static)
|
|
_sdl_create_target_alias_compat(SDL3_shadercross::SDL3_shadercross SDL3_shadercross::SDL3_shadercross-static)
|
|
endif()
|
|
endif()
|
|
|
|
check_required_components(SDL3_shadercross)
|