60 lines
3.2 KiB
CMake
60 lines
3.2 KiB
CMake
set(required_vars)
|
|
|
|
if(WIN32)
|
|
find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "inc" "windows/inc" HINTS ${DirectXShaderCompiler_ROOT})
|
|
if(SDL_CPU_ARM64)
|
|
set(extra_bin_suffix "bin/arm64" "windows/bin/arm64")
|
|
set(extra_lib_suffix "lib/arm64" "windows/lib/arm64")
|
|
elseif(SDL_CPU_X86)
|
|
set(extra_bin_suffix "bin/x86" "windows/bin/x86")
|
|
set(extra_lib_suffix "lib/x86" "windows/lib/x86")
|
|
elseif(SDL_CPU_X64)
|
|
set(extra_bin_suffix "bin/x64" "windows/bin/x64")
|
|
set(extra_lib_suffix "lib/x64" "windows/lib/x64")
|
|
endif()
|
|
find_file(DirectXShaderCompiler_dxcompiler_BINARY NAMES "dxcompiler.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT})
|
|
find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" "dxcompiler.lib" PATH_SUFFIXES "lib" ${extra_lib_suffix} HINTS ${DirectXShaderCompiler_ROOT})
|
|
find_file(DirectXShaderCompiler_dxil_BINARY NAMES "dxil.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT})
|
|
set(required_vars
|
|
DirectXShaderCompiler_INCLUDE_PATH
|
|
DirectXShaderCompiler_dxcompiler_BINARY
|
|
DirectXShaderCompiler_dxcompiler_LIBRARY
|
|
DirectXShaderCompiler_dxil_BINARY
|
|
)
|
|
else()
|
|
find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "include" "include/dxc" "linux/include" "linux/include/dxc" HINTS ${DirectXShaderCompiler_ROOT})
|
|
find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT})
|
|
find_library(DirectXShaderCompiler_dxil_LIBRARY NAMES "dxil" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT})
|
|
set(required_vars
|
|
DirectXShaderCompiler_INCLUDE_PATH
|
|
DirectXShaderCompiler_dxcompiler_LIBRARY
|
|
DirectXShaderCompiler_dxil_LIBRARY
|
|
)
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_package_handle_standard_args(DirectXShaderCompiler
|
|
REQUIRED_VARS ${required_vars}
|
|
)
|
|
|
|
if(DirectXShaderCompiler_FOUND)
|
|
if(NOT TARGET DirectXShaderCompiler::dxcompiler)
|
|
add_library(DirectXShaderCompiler::dxcompiler IMPORTED SHARED)
|
|
set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${DirectXShaderCompiler_INCLUDE_PATH}")
|
|
if(WIN32)
|
|
set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxcompiler_BINARY}")
|
|
set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_IMPLIB "${DirectXShaderCompiler_dxcompiler_LIBRARY}")
|
|
else()
|
|
set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxcompiler_LIBRARY}")
|
|
endif()
|
|
endif()
|
|
if(NOT TARGET DirectXShaderCompiler::dxil)
|
|
add_library(DirectXShaderCompiler::dxil IMPORTED SHARED)
|
|
if(WIN32)
|
|
set_property(TARGET DirectXShaderCompiler::dxil PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxil_BINARY}")
|
|
else()
|
|
set_property(TARGET DirectXShaderCompiler::dxil PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxil_LIBRARY}")
|
|
endif()
|
|
endif()
|
|
endif()
|