4
4
5
5
include (../cmake/common.cmake )
6
6
7
- # mandatory
8
- option (NBL_UPDATE_GIT_SUBMODULE "" ON )
9
-
10
- if (NBL_UPDATE_GIT_SUBMODULE )
11
- update_git_submodule (./volk )
12
- update_git_submodule (./SPIRV-Headers )
13
- update_git_submodule (./SPIRV-Tools )
14
- update_git_submodule (./glslang )
15
- update_git_submodule (./shaderc )
16
- update_git_submodule (./bzip2 )
17
- update_git_submodule (./lz4 )
18
- update_git_submodule (./nbl_spirv_cross )
19
- update_git_submodule (./zlib )
20
- update_git_submodule (./openexr )
21
- update_git_submodule (./libpng )
22
- update_git_submodule (./openssl )
23
- update_git_submodule (./libjpeg-turbo )
24
- update_git_submodule (./parallel-hashmap )
25
- update_git_submodule (./gli )
26
- # exceptions that get automatically cloned
27
- update_git_submodule (./glm )
28
- update_git_submodule (./freetype2 )
29
- update_git_submodule (./portable-file-dialogs )
30
- update_git_submodule (./simdjson )
31
- update_git_submodule (./glTFSampleModels )
32
- update_git_submodule (./pstl/oneTBB )
33
- update_git_submodule (./pstl/oneDPL/oneDPL )
34
- endif ()
35
-
36
7
# simdjson
37
8
set (_OLD_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS} )
38
9
set (_OLD_BUILD_STATIC_LIBS ${BUILD_STATIC_LIBS} )
@@ -45,10 +16,24 @@ set(BUILD_SHARED_LIBS ${_OLD_BUILD_SHARED_LIBS})
45
16
set (BUILD_STATIC_LIBS ${_OLD_BUILD_STATIC_LIBS} )
46
17
set (BUILD_TESTING ${_OLD_BUILD_TESTING} )
47
18
48
-
49
19
# openssl
50
20
add_subdirectory (openssl openssl EXCLUDE_FROM_ALL )
51
21
22
+ # DXC
23
+ set (SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR} /dxc/dxc/external/SPIRV-Headers" )
24
+ if (WIN32 )
25
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast" )
26
+ elseif (UNIX )
27
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math" )
28
+ endif ()
29
+ option (_NBL_ENABLE_DXC_COMPILE_TESTS_ "Enable it in order to test compilation of Nabla shaders at build time" OFF )
30
+ option (_NBL_DXC_COMPILE_TESTS_ENABLE_CMAKE_LOG_ "Enable more verbose log when creating DXC compile test target - only for Nabla developers!" OFF )
31
+ set (_NBL_DXC_CT_PREFIX_CMAKE_LOG_DEBUG_ "[DXC_CT]:" CACHE INTERNAL "only for Nabla developers" )
32
+ add_subdirectory (dxc dxc EXCLUDE_FROM_ALL )
33
+
34
+ if (_NBL_ENABLE_DXC_COMPILE_TESTS_ )
35
+ message (STATUS "_NBL_ENABLE_DXC_COMPILE_TESTS_ enabled, DXC compile test target will be executed at build time!" )
36
+ endif ()
52
37
53
38
# volk
54
39
set (VOLK_PULL_IN_VULKAN OFF CACHE INTERNAL "" FORCE ) # Needed to make sure vulkan library will not be linked in examples
@@ -66,28 +51,6 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
66
51
endif ()
67
52
68
53
69
- # TODO: redo
70
- find_package (OpenGL OPTIONAL_COMPONENTS EGL )
71
- find_package (Wayland ) # TODO: remove, load Wayland dynamically
72
- #[[if (OpenGL_EGL_FOUND)
73
- message(FATAL_ERROR "FOUND EGL!!")
74
- else()
75
- message(FATAL_ERROR "COULDNT FIND EGL!!")
76
- endif()]]
77
- # EGL
78
- set (EGL_NO_GLEW ON CACHE INTERNAL "" FORCE )
79
- if (OpenGL_EGL_FOUND AND UNIX AND NOT APPLE )
80
- # TODO: This Cannot work like that!
81
- set (EGL_PASSTHROUGH ON FORCE )
82
- if (WAYLAND_CLIENT_FOUND )
83
- set (EGL_USE_WAYLAND ON FORCE )
84
- message (FATAL_ERROR "Using Wayland backend!!!" )
85
- endif ()
86
- endif ()
87
- # all of the above fuckery can be dismissed
88
- add_subdirectory (EGL/EGL )
89
-
90
-
91
54
# zlib (target is zlibstatic)
92
55
set (_OLD_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS} )
93
56
set (_OLD_SKIP_INSTALL_ALL ${SKIP_INSTALL_ALL} )
@@ -140,14 +103,13 @@ set(ZLIB_LIBRARY # for PNGLIB purposes
140
103
$< $< CONFIG:RelWithDebInfo> :${ZLIB_LIBRARY_RELWITHDEBINFO} >
141
104
CACHE INTERNAL "" FORCE )
142
105
143
-
144
106
set (SPIRV_HEADERS_SKIP_INSTALL ON CACHE INTERNAL "Skip SPIRV-Headers install" )
145
107
set (SPIRV_HEADERS_SKIP_EXAMPLES ON CACHE INTERNAL "Skip SPIRV-Headers examples" )
146
- add_subdirectory (SPIRV-Headers SPIRV-Headers EXCLUDE_FROM_ALL )
108
+ add_subdirectory (dxc/dxc/external/ SPIRV-Headers dxc/external/ SPIRV-Headers EXCLUDE_FROM_ALL )
147
109
set (SKIP_SPIRV_TOOLS_INSTALL ON CACHE INTERNAL "Skip SPIRV-Tools install" )
148
110
set (SPIRV_SKIP_TESTS ON CACHE INTERNAL "Skip SPIRV-Tools tests" )
149
111
set (SPIRV_SKIP_EXECUTABLES ON CACHE INTERNAL "Skip SPIRV-Tools executable build" )
150
- add_subdirectory (SPIRV-Tools SPIRV-Tools EXCLUDE_FROM_ALL )
112
+ add_subdirectory (dxc/dxc/external/ SPIRV-Tools dxc/external/ SPIRV-Tools EXCLUDE_FROM_ALL )
151
113
set (SKIP_GLSLANG_INSTALL ON CACHE INTERNAL "Skip glslang install" )
152
114
set (ENABLE_SPVREMAPPER OFF CACHE INTERNAL "SPVRemapper is a spirv compression experimental library" )
153
115
set (ENABLE_GLSLANG_BINARIES OFF CACHE INTERNAL "Build glslangValidator and spirv-remap?" )
@@ -359,16 +321,16 @@ set(NBL_3RDPARTY_TARGETS
359
321
shaderc_util
360
322
shaderc
361
323
jpeg-static
362
- bzip2
324
+ bzip2
325
+ simdjson
363
326
glslang
364
327
OGLCompiler
365
328
OSDependent
366
329
MachineIndependent
367
330
GenericCodeGen
368
331
SPIRV
369
332
SPIRV-Tools-static # SPIRV-Tools-shared in case of SHARED lib
370
- SPIRV-Tools-opt
371
- egl
333
+ SPIRV-Tools-opt
372
334
)
373
335
if (_NBL_COMPILE_WITH_OPEN_EXR_ )
374
336
list (APPEND NBL_3RDPARTY_TARGETS
@@ -399,8 +361,11 @@ if(ENABLE_HLSL)
399
361
endif ()
400
362
401
363
foreach (trgt IN LISTS NBL_3RDPARTY_TARGETS )
402
- set_property (TARGET ${trgt} PROPERTY
403
- MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" )
364
+ if (NBL_DYNAMIC_MSVC_RUNTIME )
365
+ set_property (TARGET ${trgt} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" )
366
+ else ()
367
+ set_property (TARGET ${trgt} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" )
368
+ endif ()
404
369
endforeach ()
405
370
406
371
set (_NBL_3RDPARTY_TARGETS_ ${NBL_3RDPARTY_TARGETS} PARENT_SCOPE )
0 commit comments