@@ -39,6 +39,7 @@ if(NBL_BUILD_IMGUI)
3939 )
4040
4141 nbl_create_executable_project ("" "" "${NBL_INCLUDE_SERACH_DIRECTORIES} " "${NBL_LIBRARIES} " "${NBL_EXECUTABLE_PROJECT_CREATION_PCH_TARGET} " )
42+ target_compile_definitions (${EXECUTABLE_NAME} PRIVATE PATH_TRACER_BUILD_CONFIG_NAME= \"$<CONFIG >\" )
4243 if(PATH_TRACER_BUILD_MODE STREQUAL " SPECIALIZED ")
4344 target_compile_definitions(${EXECUTABLE_NAME} PRIVATE PATH_TRACER_BUILD_MODE_SPECIALIZED=1)
4445 else()
@@ -68,99 +69,47 @@ if(NBL_BUILD_IMGUI)
6869 )
6970
7071 set(SPIRV_FOLDER " SPIRV ")
71- set (SPIRV_INTERNAL_FOLDER "${SPIRV_FOLDER} /Internal" )
72+ macro(PATH_TRACER_APPEND_SPIRV_RULE INPUT_FILE KEY_NAME)
73+ list(APPEND SPIRV_RULE_OBJECTS
74+ " {
75+ \"INPUT\" : \" ${INPUT_FILE} \" ,
76+ \" KEY\" : \" ${KEY_NAME} \"
77+ }"
78+ )
79+ endmacro ()
80+
81+ set (SPIRV_RULE_OBJECTS "" )
82+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.sphere.proxy.hlsl" "pt.compute.sphere" )
83+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.sphere.rwmc.proxy.hlsl" "pt.compute.sphere.rwmc" )
7284 if (PATH_TRACER_BUILD_MODE STREQUAL "SPECIALIZED" )
73- set (SPIRV_RULES_JSON_TEMPLATE [=[
74- [
75- {
76- "INPUT": "app_resources/hlsl/spirv/pt.compute.sphere.proxy.hlsl",
77- "KEY": "pt.compute.sphere"
78- },
79- {
80- "INPUT": "app_resources/hlsl/spirv/pt.compute.sphere.rwmc.proxy.hlsl",
81- "KEY": "pt.compute.sphere.rwmc"
82- },
83- {
84- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.linear.proxy.hlsl",
85- "KEY": "pt.compute.triangle.linear"
86- },
87- {
88- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.persistent.proxy.hlsl",
89- "KEY": "pt.compute.triangle.persistent"
90- },
91- {
92- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.rwmc.linear.proxy.hlsl",
93- "KEY": "pt.compute.triangle.rwmc.linear"
94- },
95- {
96- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.rwmc.persistent.proxy.hlsl",
97- "KEY": "pt.compute.triangle.rwmc.persistent"
98- },
99- {
100- "INPUT": "app_resources/hlsl/spirv/pt.compute.rectangle.proxy.hlsl",
101- "KEY": "pt.compute.rectangle"
102- },
103- {
104- "INPUT": "app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.linear.proxy.hlsl",
105- "KEY": "pt.compute.rectangle.rwmc.linear"
106- },
107- {
108- "INPUT": "app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.persistent.proxy.hlsl",
109- "KEY": "pt.compute.rectangle.rwmc.persistent"
110- },
111- {
112- "INPUT": "app_resources/hlsl/resolve.comp.hlsl",
113- "KEY": "pt.compute.resolve"
114- },
115- {
116- "INPUT": "app_resources/hlsl/spirv/pt.misc.proxy.hlsl",
117- "KEY": "pt.misc"
118- }
119- ]
120- ]=] )
85+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.linear.proxy.hlsl" "pt.compute.triangle.linear" )
86+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.persistent.proxy.hlsl" "pt.compute.triangle.persistent" )
87+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.rwmc.linear.proxy.hlsl" "pt.compute.triangle.rwmc.linear" )
88+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.rwmc.persistent.proxy.hlsl" "pt.compute.triangle.rwmc.persistent" )
89+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.linear.proxy.hlsl" "pt.compute.rectangle.rwmc.linear" )
90+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.persistent.proxy.hlsl" "pt.compute.rectangle.rwmc.persistent" )
12191 else ()
122- set (SPIRV_RULES_JSON_TEMPLATE [=[
92+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.proxy.hlsl" "pt.compute.triangle" )
93+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.triangle.rwmc.proxy.hlsl" "pt.compute.triangle.rwmc" )
94+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.proxy.hlsl" "pt.compute.rectangle.rwmc" )
95+ endif ()
96+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.compute.rectangle.proxy.hlsl" "pt.compute.rectangle" )
97+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/resolve.comp.hlsl" "pt.compute.resolve" )
98+ PATH_TRACER_APPEND_SPIRV_RULE ("app_resources/hlsl/spirv/pt.misc.proxy.hlsl" "pt.misc" )
99+ string (JOIN ",\n " PATH_TRACER_RULES_BODY ${SPIRV_RULE_OBJECTS} )
100+ set (SPIRV_RULES_JSON_TEMPLATE [=[
123101[
124- {
125- "INPUT": "app_resources/hlsl/spirv/pt.compute.sphere.proxy.hlsl",
126- "KEY": "pt.compute.sphere"
127- },
128- {
129- "INPUT": "app_resources/hlsl/spirv/pt.compute.sphere.rwmc.proxy.hlsl",
130- "KEY": "pt.compute.sphere.rwmc"
131- },
132- {
133- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.proxy.hlsl",
134- "KEY": "pt.compute.triangle"
135- },
136- {
137- "INPUT": "app_resources/hlsl/spirv/pt.compute.triangle.rwmc.proxy.hlsl",
138- "KEY": "pt.compute.triangle.rwmc"
139- },
140- {
141- "INPUT": "app_resources/hlsl/spirv/pt.compute.rectangle.proxy.hlsl",
142- "KEY": "pt.compute.rectangle"
143- },
144- {
145- "INPUT": "app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.proxy.hlsl",
146- "KEY": "pt.compute.rectangle.rwmc"
147- },
148- {
149- "INPUT": "app_resources/hlsl/resolve.comp.hlsl",
150- "KEY": "pt.compute.resolve"
151- },
152- {
153- "INPUT": "app_resources/hlsl/spirv/pt.misc.proxy.hlsl",
154- "KEY": "pt.misc"
155- }
102+ @PATH_TRACER_RULES_BODY@
156103]
157104]=] )
158- endif ()
159105 string (CONFIGURE "${SPIRV_RULES_JSON_TEMPLATE} " SPIRV_RULES_JSON @ONLY)
106+ unset (SPIRV_RULE_OBJECTS)
107+ unset (PATH_TRACER_RULES_BODY)
160108 set (ALL_SPIRV_KEYS "" )
161109 NBL_CREATE_NSC_COMPILE_RULES (
162110 DISCARD_DEFAULT_GLOB
163111 TARGET ${EXECUTABLE_NAME} SPIRV
112+ LINK_TO ${EXECUTABLE_NAME}
164113 BINARY_DIR ${OUTPUT_DIRECTORY}
165114 MOUNT_POINT_DEFINE NBL_THIS_EXAMPLE_BUILD_MOUNT_POINT
166115 COMMON_OPTIONS ${COMPILE_OPTIONS}
@@ -180,8 +129,6 @@ if(NBL_BUILD_IMGUI)
180129 BIND ${OUTPUT_DIRECTORY}
181130 BUILTINS ${SPIRV_KEYS}
182131 )
183- set_target_properties (${EXECUTABLE_NAME} _builtinsBuild PROPERTIES FOLDER "${SPIRV_INTERNAL_FOLDER} " )
184- add_dependencies (${EXECUTABLE_NAME} _builtinsBuild ${EXECUTABLE_NAME} SPIRV )
185132
186133 if (NBL_EMBED_BUILTIN_RESOURCES)
187134 set (_BR_TARGET_ ${EXECUTABLE_NAME} _builtinResourceData)
0 commit comments