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_ENABLE_FIXED_VER OFF CACHE BOOL "" )
6
- set (HLSL_FIXED_VERSION_LOCATION "" CACHE STRING "" )
7
- set (HLSL_BUILD_DXILCONV ON CACHE BOOL "" )
8
- set (CLANG_VENDOR "" CACHE STRING "" )
9
- set (ENABLE_SPIRV_CODEGEN ON CACHE BOOL "" )
10
- set (SPIRV_BUILD_TESTS OFF CACHE BOOL "" )
11
- set (CLANG_ENABLE_ARCMT OFF CACHE BOOL "" )
12
- set (CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "" )
13
- set (CLANG_INCLUDE_TESTS Off CACHE BOOL "" )
14
- set (LLVM_INCLUDE_TESTS Off CACHE BOOL "" )
15
- set (HLSL_INCLUDE_TESTS OFF CACHE BOOL "" )
16
- set (LLVM_TARGETS_TO_BUILD None CACHE STRING "" )
17
- set (LLVM_INCLUDE_DOCS OFF CACHE BOOL "" )
18
- set (LLVM_INCLUDE_TESTS OFF CACHE BOOL "" )
19
- set (LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "" )
20
- set (LIBCLANG_BUILD_STATIC ON CACHE BOOL "" )
21
- set (LLVM_OPTIMIZED_TABLEGEN OFF CACHE BOOL "" )
22
- set (LLVM_REQUIRES_EH ON CACHE BOOL "" )
23
- set (LLVM_APPEND_VC_REV ON CACHE BOOL "" )
24
- set (LLVM_ENABLE_RTTI ON CACHE BOOL "" )
25
- set (LLVM_ENABLE_EH ON CACHE BOOL "" )
26
- set (LLVM_DEFAULT_TARGET_TRIPLE "dxil-ms-dx" CACHE STRING "" )
27
- set (CLANG_BUILD_EXAMPLES OFF CACHE BOOL "" )
28
- set (LLVM_REQUIRES_RTTI ON CACHE BOOL "" )
29
- set (CLANG_CL OFF CACHE BOOL "" )
30
- set (LLVM_ENABLE_WERROR OFF CACHE BOOL "" FORCE )
31
- set (SPIRV_WERROR OFF CACHE BOOL "" FORCE )
32
- set (DXC_BUILD_ARCH x64 CACHE STRING "" )
33
- set (SPIRV_HEADERS_SKIP_INSTALL ON CACHE INTERNAL "Skip SPIRV-Headers install" )
34
- set (SPIRV_HEADERS_SKIP_EXAMPLES ON CACHE INTERNAL "Skip SPIRV-Headers examples" )
35
- set (SKIP_SPIRV_TOOLS_INSTALL ON CACHE INTERNAL "Skip SPIRV-Tools install" )
36
- set (SPIRV_SKIP_TESTS ON CACHE INTERNAL "Skip SPIRV-Tools tests" )
37
- set (SPIRV_SKIP_EXECUTABLES ON CACHE INTERNAL "Skip SPIRV-Tools executable build" )
38
- set (HLSL_ENABLE_DEBUG_ITERATORS ON CACHE BOOL "Enable Debug iterators" FORCE )
39
-
40
- nbl_adjust_flags ()
1
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_OPTIONAL_PROJS_IN_DEFAULT:BOOL=OFF" )
2
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_ENABLE_ANALYZE:BOOL=OFF" )
3
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_OFFICIAL_BUILD:BOOL=OFF" )
4
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_ENABLE_FIXED_VER:BOOL=OFF" )
5
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_FIXED_VERSION_LOCATION:STRING=" )
6
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_BUILD_DXILCONV:BOOL=ON" )
7
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_VENDOR:STRING=" )
8
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DENABLE_SPIRV_CODEGEN:BOOL=ON" )
9
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_BUILD_TESTS:BOOL=OFF" )
10
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_ENABLE_ARCMT:BOOL=OFF" )
11
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF" )
12
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_INCLUDE_TESTS:BOOL=Off" )
13
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_INCLUDE_TESTS:BOOL=Off" )
14
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_INCLUDE_TESTS:BOOL=OFF" )
15
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_TARGETS_TO_BUILD:STRING=None" )
16
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_INCLUDE_DOCS:BOOL=OFF" )
17
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_INCLUDE_TESTS:BOOL=OFF" )
18
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF" )
19
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLIBCLANG_BUILD_STATIC:BOOL=ON" )
20
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_OPTIMIZED_TABLEGEN:BOOL=OFF" )
21
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_REQUIRES_EH:BOOL=ON" )
22
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_APPEND_VC_REV:BOOL=ON" )
23
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_ENABLE_RTTI:BOOL=ON" )
24
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_ENABLE_EH:BOOL=ON" )
25
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_DEFAULT_TARGET_TRIPLE:STING=dxil-ms-dx" )
26
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_BUILD_EXAMPLES:BOOL=OFF" )
27
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_REQUIRES_RTTI:BOOL=ON" )
28
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DCLANG_CL:BOOL=OFF" )
29
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DLLVM_ENABLE_WERROR:BOOL=OFF" )
30
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_WERROR:BOOL=OFF" )
31
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DDXC_BUILD_ARCH:STRING=x64" )
32
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_HEADERS_SKIP_INSTALL:BOOL=ON" )
33
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_HEADERS_SKIP_EXAMPLES:BOOL=ON" )
34
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSKIP_SPIRV_TOOLS_INSTALL:BOOL=ON" )
35
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_SKIP_TESTS:BOOL=ON" )
36
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DSPIRV_SKIP_EXECUTABLES:BOOL=ON" )
37
+ list (APPEND NBL_DXC_CMAKE_OPTIONS "-DHLSL_ENABLE_DEBUG_ITERATORS:BOOL=ON" )
41
38
42
- set (CMAKE_CXX_STANDARD_REQUIRED ON )
43
- set (CMAKE_CXX_STANDARD 11 ) # compiler must support exactly c++11 or c++14 standard in order to be able to build DXC libraries
44
39
if (NBL_DYNAMIC_MSVC_RUNTIME )
45
- set ( CMAKE_MSVC_RUNTIME_LIBRARY " MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" )
40
+ list ( APPEND NBL_DXC_CMAKE_OPTIONS "-DCMAKE_MSVC_RUNTIME_LIBRARY:STATIC= MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" )
46
41
else ()
47
- set ( CMAKE_MSVC_RUNTIME_LIBRARY " MultiThreaded$<$<CONFIG:Debug>:Debug>" )
42
+ list ( APPEND NBL_DXC_CMAKE_OPTIONS "-DCMAKE_MSVC_RUNTIME_LIBRARY:STATIC= MultiThreaded$<$<CONFIG:Debug>:Debug>" )
48
43
endif ()
49
44
45
+ # perform DXC compile standard requirement test
46
+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
47
+ set (CMAKE_CXX_STANDARD 11 ) # compiler must support exactly c++11 or c++14 standard in order to be able to build DXC libraries
48
+
50
49
try_compile (DXC_COMPILE_TEST_PASSED
51
50
SOURCES "${CMAKE_CURRENT_SOURCE_DIR} /test/test.cpp"
52
51
OUTPUT_VARIABLE DXC_COMPILE_RET_VAL
@@ -60,7 +59,16 @@ else()
60
59
message (FATAL_ERROR "${DXC_COMPILE_RET_VAL} " )
61
60
endif ()
62
61
63
- add_subdirectory (dxc dxc )
62
+ set (DXC_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR} /build" CACHE INTERNAL "" )
63
+ execute_process (COMMAND "${CMAKE_COMMAND} " -S "${CMAKE_CURRENT_SOURCE_DIR} /dxc" -B "${DXC_BUILD_DIR} " -G "${CMAKE_GENERATOR} " "-Ax64" -T "${CMAKE_GENERATOR_TOOLSET} " ${NBL_DXC_CMAKE_OPTIONS}
64
+ RESULT_VARIABLE DXC_CMAKE_RESULT
65
+ OUTPUT_VARIABLE DXC_CMAKE_STREAM_PIPE
66
+ )
67
+
68
+ if (NOT "${DXC_CMAKE_RESULT} " STREQUAL "0" )
69
+ message (FATAL_ERROR "${DXC_CMAKE_STREAM_PIPE} " )
70
+ endif ()
71
+
64
72
set (CMAKE_CXX_STANDARD 20 ) # it's mandatory
65
73
unset (CMAKE_CXX_STANDARD_REQUIRED )
66
74
@@ -98,4 +106,19 @@ set(DXC_EXT_EXECUTABLE "${DXC_UNPACK_DIR}/dxc.exe" CACHE STRING "" FORCE)
98
106
99
107
if (_NBL_ENABLE_DXC_COMPILE_TESTS_ )
100
108
add_subdirectory (CT CT )
101
- endif ()
109
+ endif ()
110
+
111
+ include ("${DXC_BUILD_DIR} /nbl/generate/dxc/config/debug.cmake" )
112
+ include ("${DXC_BUILD_DIR} /nbl/generate/dxc/config/release.cmake" )
113
+
114
+ set (DXC_INCLUDE_DIRECTORIES
115
+ $< IF:$< CONFIG:Debug> ,${NBL_DXC_DEBUG_INCLUDE_DIRECTORIES} ,${NBL_DXC_RELEASE_INCLUDE_DIRECTORIES} >
116
+ CACHE INTERNAL "" )
117
+
118
+ set (DXC_LIB
119
+ $< IF:$< CONFIG:Debug> ,${NBL_DXC_DEBUG_LIB} ,${NBL_DXC_RELEASE_LIB} >
120
+ CACHE INTERNAL "" )
121
+
122
+ set (DXC_DLL
123
+ $< IF:$< CONFIG:Debug> ,${NBL_DXC_DEBUG_DLL} ,${NBL_DXC_RELEASE_DLL} >
124
+ CACHE INTERNAL "" )
0 commit comments