prepare dx dev
This commit is contained in:
47
BasaltPresenter/CMake/FindDirectX12.cmake
Normal file
47
BasaltPresenter/CMake/FindDirectX12.cmake
Normal file
@@ -0,0 +1,47 @@
|
||||
## 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)
|
||||
Reference in New Issue
Block a user