Skip to content

Commit a9841d1

Browse files
committed
make DXC compile with Nabla's BS via external project
1 parent 47e3e4c commit a9841d1

File tree

3 files changed

+48
-62
lines changed

3 files changed

+48
-62
lines changed

3rdparty/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ set(BUILD_TESTING ${_OLD_BUILD_TESTING})
2020
add_subdirectory(openssl openssl EXCLUDE_FROM_ALL)
2121

2222
# DXC
23-
#option(_NBL_COMPILE_WITH_DXC_ "Build Nabla with DXC" ON)
23+
option(_NBL_COMPILE_WITH_DXC_ "Build Nabla with DXC" ON)
2424
if(_NBL_COMPILE_WITH_DXC_)
2525
add_subdirectory(dxc dxc EXCLUDE_FROM_ALL)
2626
endif()

3rdparty/dxc/CMakeLists.txt

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,48 @@
1-
set(HLSL_OPTIONAL_PROJS_IN_DEFAULT OFF CACHE BOOL "")
2-
set(HLSL_ENABLE_ANALYZE OFF CACHE BOOL "")
3-
set(HLSL_OFFICIAL_BUILD OFF CACHE BOOL "")
4-
set(HLSL_ENABLE_FIXED_VER OFF CACHE BOOL "")
5-
set(HLSL_FIXED_VERSION_LOCATION "" CACHE STRING "")
6-
set(HLSL_BUILD_DXILCONV ON CACHE BOOL "")
7-
set(CLANG_VENDOR "" CACHE STRING "")
8-
set(ENABLE_SPIRV_CODEGEN OFF CACHE BOOL "")
9-
set(SPIRV_BUILD_TESTS OFF CACHE BOOL "")
10-
set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
11-
set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "")
12-
set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "")
13-
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
14-
set(HLSL_INCLUDE_TESTS OFF CACHE BOOL "")
15-
set(LLVM_TARGETS_TO_BUILD None CACHE STRING "")
16-
set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
17-
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
18-
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
19-
set(LIBCLANG_BUILD_STATIC ON CACHE BOOL "")
20-
set(LLVM_OPTIMIZED_TABLEGEN OFF CACHE BOOL "")
21-
set(LLVM_REQUIRES_EH ON CACHE BOOL "")
22-
set(LLVM_APPEND_VC_REV ON CACHE BOOL "")
23-
set(LLVM_ENABLE_RTTI ON CACHE BOOL "")
24-
set(LLVM_ENABLE_EH ON CACHE BOOL "")
25-
set(LLVM_DEFAULT_TARGET_TRIPLE dxil-ms-dx CACHE STRING "")
26-
set(CLANG_BUILD_EXAMPLES OFF CACHE BOOL "")
27-
set(LLVM_REQUIRES_RTTI ON CACHE BOOL "")
28-
set(CLANG_CL OFF CACHE BOOL "")
29-
set(DXC_BUILD_ARCH x64 CACHE INTERNAL "")
30-
#CMAKE_SYSTEM_VERSION=10.0.17763.0
1+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_OPTIONAL_PROJS_IN_DEFAULT:BOOL=OFF")
2+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_ENABLE_ANALYZE:BOOL=OFF")
3+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_OFFICIAL_BUILD:BOOL=OFF")
4+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_ENABLE_FIXED_VER:BOOL=OFF")
5+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_ENABLE_FIXED_VER:BOOL=OFF")
6+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_FIXED_VERSION_LOCATION:STRING=")
7+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_BUILD_DXILCONV:BOOL=ON")
8+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_VENDOR:STRING=")
9+
list(APPEND DXC_CMAKE_ARGS "-DENABLE_SPIRV_CODEGEN:BOOL=OFF")
10+
list(APPEND DXC_CMAKE_ARGS "-DSPIRV_BUILD_TESTS:BOOL=OFF")
11+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_ENABLE_ARCMT:BOOL=OFF")
12+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF")
13+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_INCLUDE_TESTS:BOOL=Off")
14+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_INCLUDE_TESTS:BOOL=Off")
15+
list(APPEND DXC_CMAKE_ARGS "-DHLSL_INCLUDE_TESTS:BOOL=OFF")
16+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_TARGETS_TO_BUILD:STRING=None")
17+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_INCLUDE_DOCS:BOOL=OFF")
18+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_INCLUDE_TESTS:BOOL=OFF")
19+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF")
20+
list(APPEND DXC_CMAKE_ARGS "-DLIBCLANG_BUILD_STATIC:BOOL=ON")
21+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_OPTIMIZED_TABLEGEN:BOOL=OFF")
22+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_REQUIRES_EH:BOOL=ON")
23+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_APPEND_VC_REV:BOOL=ON")
24+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_ENABLE_RTTI:BOOL=ON")
25+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_ENABLE_EH:BOOL=ON")
26+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_DEFAULT_TARGET_TRIPLE:STRING=dxil-ms-dx")
27+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_BUILD_EXAMPLES:BOOL=OFF")
28+
list(APPEND DXC_CMAKE_ARGS "-DLLVM_REQUIRES_RTTI:BOOL=ON")
29+
list(APPEND DXC_CMAKE_ARGS "-DCLANG_CL:BOOL=OFF")
30+
list(APPEND DXC_CMAKE_ARGS "-DCMAKE_SYSTEM_VERSION=10.0.17763.0")
31+
list(APPEND DXC_CMAKE_ARGS "-DDXC_BUILD_ARCH=x64")
3132

32-
add_subdirectory(dxc/ dxc/)
33+
set(DXC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dxc" CACHE PATH "")
34+
set(DXC_BINARY_DIR_EP "${CMAKE_CURRENT_BINARY_DIR}/external/dxc" CACHE PATH "")
35+
set(DXC_BINARY_DIR_GE "${DXC_BINARY_DIR_EP}/$<CONFIG>" CACHE PATH "")
3336

34-
unset(HLSL_OPTIONAL_PROJS_IN_DEFAULT CACHE)
35-
unset(HLSL_ENABLE_ANALYZE CACHE)
36-
unset(HLSL_OFFICIAL_BUILD CACHE)
37-
unset(HLSL_ENABLE_FIXED_VER CACHE)
38-
unset(HLSL_FIXED_VERSION_LOCATION CACHE)
39-
unset(HLSL_BUILD_DXILCONV CACHE)
40-
unset(CLANG_VENDOR CACHE)
41-
unset(ENABLE_SPIRV_CODEGEN CACHE)
42-
unset(SPIRV_BUILD_TESTS CACHE)
43-
unset(CLANG_ENABLE_ARCMT CACHE)
44-
unset(CLANG_ENABLE_STATIC_ANALYZER CACHE)
45-
unset(CLANG_INCLUDE_TESTS CACHE)
46-
unset(LLVM_INCLUDE_TESTS CACHE)
47-
unset(HLSL_INCLUDE_TESTS CACHE)
48-
unset(LLVM_TARGETS_TO_BUILD CACHE)
49-
unset(LLVM_INCLUDE_DOCS CACHE)
50-
unset(LLVM_INCLUDE_TESTS CACHE)
51-
unset(LLVM_INCLUDE_EXAMPLES CACHE)
52-
unset(LIBCLANG_BUILD_STATIC CACHE)
53-
unset(LLVM_OPTIMIZED_TABLEGEN CACHE)
54-
unset(LLVM_REQUIRES_EH CACHE)
55-
unset(LLVM_APPEND_VC_REV CACHE)
56-
unset(LLVM_ENABLE_RTTI CACHE)
57-
unset(LLVM_ENABLE_EH CACHE)
58-
unset(LLVM_DEFAULT_TARGET_TRIPLE CACHE)
59-
unset(CLANG_BUILD_EXAMPLES CACHE)
60-
unset(LLVM_REQUIRES_RTTI CACHE)
61-
unset(CLANG_CL CACHE)
62-
unset(DXC_BUILD_ARCH CACHE)
37+
ExternalProject_Add(dxc
38+
DOWNLOAD_COMMAND ""
39+
SOURCE_DIR "${DXC_SOURCE_DIR}"
40+
BINARY_DIR "${DXC_BINARY_DIR_EP}"
41+
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${DXC_BINARY_DIR_GE}" --config Release --target dxc --target dxcompiler -v
42+
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${DXC_SOURCE_DIR}" -B "${DXC_BINARY_DIR_GE}" -G "${CMAKE_GENERATOR}" "-Ax64" -T "${CMAKE_GENERATOR_TOOLSET}" ${DXC_CMAKE_ARGS}
43+
INSTALL_COMMAND ""
44+
TEST_COMMAND ""
45+
LOG_INSTALL 1
46+
)
47+
48+
unset(DXC_CMAKE_ARGS)

src/nbl/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ endif()
577577

578578
# DXC
579579
if(_NBL_COMPILE_WITH_DXC_)
580-
add_dependencies(Nabla dxc dxcompiler)
580+
add_dependencies(Nabla dxc)
581581
# TODO
582582
endif()
583583

0 commit comments

Comments
 (0)