diff options
author | dan sinclair <dsinclair@google.com> | 2019-05-27 20:07:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-27 20:07:26 -0400 |
commit | 47dfd3c7f3e337153ee84556a4558b2ede08c3ab (patch) | |
tree | e6f18252668b6ed50b18881a0a4634918ba6cdfc /third_party | |
parent | dbfc621216f3771e1ce5b1863f9be5443f3da9a4 (diff) | |
download | amber-47dfd3c7f3e337153ee84556a4558b2ede08c3ab.tar.gz |
Add HLSL support through DXC (#511)
This Cl adds DXC to the Amber third_party directory and enables using
HLSL as the shader language in AmberScript.
Fixes #34
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/CMakeLists.txt | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index a7e6c3d..8b7364a 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -64,3 +64,58 @@ if (${AMBER_ENABLE_SWIFTSHADER}) set(WARNINGS_AS_ERRORS FALSE CACHE BOOL FALSE) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/swiftshader) endif() + +if (${AMBER_ENABLE_DXC}) + set(DXC_EXTERNAL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "" FORCE) + set(DXC_SPIRV_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers" CACHE PATH "" FORCE) + set(DXC_SPIRV_TOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools" CACHE PATH "" FORCE) + + set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "") + set(LLVM_APPEND_VC_REV ON CACHE BOOL "") + set(LLVM_DEFAULT_TARGET_TRIPLE "dxil-ms-dx" CACHE STRING "") + set(LLVM_ENABLE_EH ON CACHE BOOL "") + set(LLVM_ENABLE_RTTI ON CACHE BOOL "") + set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") + set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") + set(LLVM_BUILD_TESTS ON CACHE BOOL "") + set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") + set(LLVM_INCLUDE_TOOLS ON CACHE BOOL "") + set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") + set(LLVM_BUILD_EXAMPLES OFF CACHE BOOL "") + set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") + set(LLVM_USE_CRT_DEBUG MTd CACHE STRING "") + set(LLVM_USE_CRT_RELEASE MT CACHE STRING "") + set(LLVM_USE_CRT_RELWITHDEBINFO MT CACHE STRING "") + + set(LLVM_OPTIMIZED_TABLEGEN OFF CACHE BOOL "") + set(LLVM_REQUIRES_EH ON CACHE BOOL "") + set(LLVM_REQUIRES_RTTI ON CACHE BOOL "") + set(LLVM_TARGETS_TO_BUILD None CACHE STRING "") + set(LIBCLANG_BUILD_STATIC ON CACHE BOOL "") + set(CLANG_BUILD_EXAMPLES OFF CACHE BOOL "") + set(CLANG_CL OFF CACHE BOOL "") + set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") + set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") + set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") + set(HLSL_INCLUDE_TESTS OFF CACHE BOOL "") + set(ENABLE_SPIRV_CODEGEN ON CACHE BOOL "enable spirv codegen") + set(SPIRV_BUILD_TESTS OFF CACHE BOOL "Enable dxc spirv tests") + + set(LLVM_BUILD_STATIC ON CACHE BOOL "") + set(BUILD_SHARED_LIBS OFF CACHE BOOL "") + + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dxc EXCLUDE_FROM_ALL) + + if (MSVC) + add_custom_target(dxc-binary ALL + DEPENDS "${CMAKE_BINARY_DIR}/third_party/dxc/bin/dxcompiler.dll" + COMMENT "dxc-binary custom target") + + ADD_CUSTOM_COMMAND( + TARGET dxc-binary + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy ${CMAKE_BINARY_DIR}/third_party/dxc/bin/dxcompiler.dll ${CMAKE_BINARY_DIR} + ) + endif() +endif() |