Skip to content

Commit 103da15

Browse files
committed
Cmake clean-up
1 parent f744b0a commit 103da15

File tree

2 files changed

+15
-95
lines changed

2 files changed

+15
-95
lines changed

cmake/DaemonEmbed.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function(GenerateEmbedFile srcPath dstPath filename_symbol format target mode sr
5353
"sizeof( ${filename_symbol} )) },\n")
5454
endfunction()
5555

56-
function(GenerateEmbedFileH srcPaths dstPath format target)
56+
function(GenerateEmbedFilesConstexpr srcPaths dstPath format target)
5757
set(first TRUE)
5858
foreach(srcPath IN LISTS srcPaths)
5959
get_filename_component(filename "${srcPath}" NAME_WE)
@@ -78,7 +78,7 @@ function(GenerateEmbedFileH srcPaths dstPath format target)
7878
add_custom_command(
7979
OUTPUT ${dstPath}
8080
COMMAND ${cmdList}
81-
MAIN_DEPENDENCY ${srcPath}
81+
DEPENDS ${srcPath} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DaemonEmbed.cmake
8282
)
8383

8484
target_sources(${target} PRIVATE ${dstPath})

cmake/DaemonVulkan.cmake

Lines changed: 13 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -30,94 +30,13 @@
3030
#
3131
# ===========================================================================
3232

33-
find_package( Vulkan REQUIRED COMPONENTS glslangValidator glslang )
34-
35-
if( NOT Vulkan_FOUND )
36-
message( FATAL_ERROR "Could NOT find libVulkan" )
37-
endif()
38-
39-
set( generatorPath ${CMAKE_SOURCE_DIR}/cmake/DaemonVulkan/VulkanHeaders/ )
40-
set( vulkanLoaderPath ${CMAKE_SOURCE_DIR}/src/engine/renderer-vulkan/VulkanLoader/vulkan/ )
41-
42-
macro( GenerateVulkanHeader target mode )
43-
add_custom_command(
44-
COMMAND ${PYTHON_EXECUTABLE} ${Python_EXECUTABLE} ${generatorPath}/genvk.py -registry ${generatorPath}/vk.xml -o ${vulkanLoaderPath} -apiname vulkan -mode ${mode} ${target}.h
45-
DEPENDS
46-
${generatorPath}/vk.xml
47-
${generatorPath}/genvk.py
48-
${generatorPath}/reg.py
49-
${generatorPath}/generator.py
50-
${generatorPath}/cgenerator.py
51-
OUTPUT
52-
${vulkanLoaderPath}/${target}.h
53-
COMMENT "Generating Vulkan header: ${target}.h"
54-
)
55-
endmacro()
56-
57-
set( vulkanHeaders
58-
# vulkan_core
59-
"vulkan_beta"
60-
"vulkan_win32"
61-
"vulkan_wayland"
62-
"vulkan_xlib"
63-
"vulkan_xlib_xrandr"
64-
)
65-
66-
function( GenerateVulkanHeaders )
67-
find_package( Python REQUIRED )
68-
69-
if( EXISTS ${generatorPath}/vulkan_core.h )
70-
configure_file( ${vulkanLoaderPath}/vulkan_core.h ${generatorPath}/vulkan_core.h.tmp COPYONLY )
71-
else()
72-
set( REGENERATE )
73-
endif()
74-
75-
foreach( header ${vulkanHeaders} )
76-
if( EXISTS ${vulkanLoaderPath}/${header}.h )
77-
configure_file( ${vulkanLoaderPath}/${header}.h ${generatorPath}/${header}.h.tmp COPYONLY )
78-
else()
79-
set( REGENERATE )
80-
endif()
81-
endforeach()
82-
83-
if( REGENERATE OR ${generatorPath}/vk.xml IS_NEWER_THAN ${generatorPath}/vk.xml.tmp OR NOT EXISTS ${generatorPath}/vk.xml.tmp )
84-
configure_file( ${generatorPath}/vk.xml ${generatorPath}/vk.xml.tmp COPYONLY )
85-
86-
GenerateVulkanHeader( "vulkan_core" "w" )
87-
88-
foreach( header ${vulkanHeaders} )
89-
GenerateVulkanHeader( ${header} "a" )
90-
endforeach()
91-
92-
add_custom_target(vht ALL
93-
DEPENDS ${vulkanLoaderPath}/vulkan_core.h ${vulkanHeaders}
94-
)
95-
endif()
96-
endfunction()
97-
98-
function( GenerateVulkanHeaders2 )
99-
GenerateVulkanHeader( "vulkan_core" "w" )
100-
GenerateVulkanHeader( "vulkan_beta" "a" )
101-
GenerateVulkanHeader( "vulkan_win32" "a" )
102-
GenerateVulkanHeader( "vulkan_wayland" "a" )
103-
GenerateVulkanHeader( "vulkan_xlib" "a" )
104-
GenerateVulkanHeader( "vulkan_xlib_xrandr" "a" )
105-
106-
foreach( header ${vulkanHeaders} )
107-
GenerateVulkanHeader( ${header} "a" )
108-
endforeach()
109-
110-
add_custom_target(vht ALL
111-
DEPENDS ${vulkanLoaderPath}/vulkan_core.h ${vulkanHeaders}
112-
)
113-
endfunction()
114-
115-
# GenerateVulkanHeaders()
116-
11733
option( VULKAN_SPIRV_OUT "Output text SPIR-V files alongside the binary format." ON )
11834
option( VULKAN_SPIRV_OPTIMISE "Enable SPIR-V optimisations." ON )
11935
option( VULKAN_SPIRV_LTO "Enable link-time SPIR-V optimisations." ON )
12036

37+
set( VULKAN_SPIRV_DEBUG "default" CACHE STRING "glslangValidator debug options (remove: g0, non-semantic: gV)")
38+
set_property( CACHE VULKAN_SPIRV_DEBUG PROPERTY STRINGS default remove non-semantic )
39+
12140
if( USE_VULKAN )
12241
add_executable( VulkanShaderParser "${DAEMON_DIR}/cmake/DaemonVulkan/VulkanShaderParser.cpp" )
12342

@@ -131,17 +50,14 @@ if( USE_VULKAN )
13150
file( MAKE_DIRECTORY ${DAEMON_GENERATED_DIR}/DaemonVulkan/GraphicsEngine/processed/ )
13251
file( MAKE_DIRECTORY ${DAEMON_GENERATED_DIR}/DaemonVulkan/GraphicsEngine/spirv/ )
13352
file( MAKE_DIRECTORY ${DAEMON_GENERATED_DIR}/DaemonVulkan/GraphicsEngine/bin/ )
134-
135-
set( VULKAN_SPIRV_DEBUG "default" CACHE STRING "glslangValidator debug options (remove: g0, non-semantic: gV)")
136-
set_property( CACHE VULKAN_SPIRV_DEBUG PROPERTY STRINGS default remove non-semantic )
13753
endif()
13854

13955
include( DaemonEmbed )
14056

14157
macro( GenerateVulkanShaders target )
14258
# Pre-processing for #insert/#include
14359
foreach( src IN LISTS graphicsEngineList )
144-
set( graphicsProcessedList ${graphicsProcessedList} ${src} )
60+
set( graphicsEngineProcessedList ${graphicsEngineProcessedList} ${src} )
14561
list( APPEND graphicsEngineOutputList ${GRAPHICS_ENGINE_PROCESSED_PATH}processed/${src} )
14662

14763
get_filename_component( name "${src}" NAME_WE )
@@ -161,6 +77,10 @@ macro( GenerateVulkanShaders target )
16177
# glslangValidator
16278
find_program( glslangV glslangValidator HINTS /usr/bin /usr/local/bin $ENV{VULKAN_SDK}/Bin/ $ENV{VULKAN_SDK}/Bin32/ )
16379

80+
if( glslangV STREQUAL "glslangValidator-NOTFOUND" )
81+
message( FATAL_ERROR "glslangValidator not found; make sure you have the Vulkan SDK installed" )
82+
endif()
83+
16484
set( spirvOptions --target-env vulkan1.3 --glsl-version 460 -e main -l -t )
16585

16686
if( VULKAN_SPIRV_OUT )
@@ -184,10 +104,10 @@ macro( GenerateVulkanShaders target )
184104
endif()
185105

186106
add_custom_command(
187-
COMMAND VulkanShaderParser \"${glslangV} ${spirvOptions}\" ${spirvOut} ${graphicsProcessedList}
188-
DEPENDS ${graphicsEngineIDEList}
107+
COMMAND VulkanShaderParser \"${glslangV} ${spirvOptions}\" ${spirvOut} ${graphicsEngineProcessedList}
108+
DEPENDS ${graphicsEngineIDEList} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DaemonVulkan.cmake
189109
OUTPUT ${graphicsEngineOutputList}
190-
COMMENT "Generating Vulkan graphics engine: ${graphicsProcessedList}"
110+
COMMENT "Generating Vulkan Graphics Engine: ${graphicsEngineProcessedList}"
191111
)
192112

193113
add_custom_target( VulkanShaderParserTarget ALL
@@ -217,10 +137,10 @@ macro( GenerateVulkanShaders target )
217137
list( APPEND spirvBinList ${spirvBinPath} )
218138
endforeach()
219139

220-
GenerateEmbedFileH( "${spirvBinList}" ${DAEMON_GENERATED_DIR}/DaemonVulkan/GraphicsEngine/spirv/spirv.h BINARY client-objects )
140+
GenerateEmbedFilesConstexpr( "${spirvBinList}" ${DAEMON_GENERATED_DIR}/DaemonVulkan/GraphicsEngine/spirv/spirv.h BINARY client-objects )
221141

222142
add_custom_target( VulkanShaderBin ALL
223-
DEPENDS ${spirvBinList}
143+
DEPENDS ${spirvBinList} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DaemonVulkan.cmake
224144
)
225145

226146
target_sources( ${target} PRIVATE ${graphicsEngineOutputList} )

0 commit comments

Comments
 (0)