47 lines
2.2 KiB
CMake
47 lines
2.2 KiB
CMake
## Stolen from https://github.com/Microsoft/DirectXShaderCompiler/blob/main/cmake/modules/FindD3D12.cmake
|
|
# Find the Win10 SDK path.
|
|
if ("$ENV{WIN10_SDK_PATH}$ENV{WIN10_SDK_VERSION}" STREQUAL "" )
|
|
get_filename_component(WIN10_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE CACHE)
|
|
set (WIN10_SDK_VERSION ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION})
|
|
elseif(TRUE)
|
|
set (WIN10_SDK_PATH $ENV{WIN10_SDK_PATH})
|
|
set (WIN10_SDK_VERSION $ENV{WIN10_SDK_VERSION})
|
|
endif ("$ENV{WIN10_SDK_PATH}$ENV{WIN10_SDK_VERSION}" STREQUAL "" )
|
|
|
|
# WIN10_SDK_PATH will be something like C:\Program Files (x86)\Windows Kits\10
|
|
# WIN10_SDK_VERSION will be something like 10.0.14393 or 10.0.14393.0; we need the
|
|
# one that matches the directory name.
|
|
|
|
if (IS_DIRECTORY "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}.0")
|
|
set(WIN10_SDK_VERSION "${WIN10_SDK_VERSION}.0")
|
|
endif (IS_DIRECTORY "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}.0")
|
|
|
|
|
|
# Find the d3d12 and dxgi include path, it will typically look something like this.
|
|
# C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um\d3d12.h
|
|
# C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared\dxgi1_4.h
|
|
find_path(DirectX12_INCLUDE_DIR # Set variable DirectX12_INCLUDE_DIR
|
|
d3d12.h # Find a path with d3d12.h
|
|
HINTS "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}/um"
|
|
DOC "path to WIN10 SDK header files"
|
|
HINTS
|
|
)
|
|
|
|
find_path(DXGI_INCLUDE_DIR # Set variable DXGI_INCLUDE_DIR
|
|
dxgi1_4.h # Find a path with dxgi1_4.h
|
|
HINTS "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}/shared"
|
|
DOC "path to WIN10 SDK header files"
|
|
HINTS
|
|
)
|
|
set(DirectX12_INCLUDE_DIRS ${DirectX12_INCLUDE_DIR} ${DXGI_INCLUDE_DIR})
|
|
|
|
# List of D3D libraries
|
|
set(DirectX12_LIBRARY d3d12.lib dxgi.lib d3dcompiler.lib dxguid.lib)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
# handle the QUIETLY and REQUIRED arguments and set D3D12_FOUND to TRUE
|
|
# if all listed variables are TRUE
|
|
find_package_handle_standard_args(DirectX12 DEFAULT_MSG
|
|
DirectX12_INCLUDE_DIRS DirectX12_LIBRARY)
|
|
|
|
mark_as_advanced(DirectX12_INCLUDE_DIRS DirectX12_LIBRARY) |