File tree 2 files changed +32
-13
lines changed
2 files changed +32
-13
lines changed Original file line number Diff line number Diff line change @@ -100,15 +100,37 @@ set(core_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR})
100
100
set (core_module_generated_header
101
101
${core_module_generated_header_dir} /slang-core-module-generated .h
102
102
)
103
+ set (glsl_module_generated_header_dir
104
+ ${CMAKE_CURRENT_BINARY_DIR} /../slang-glsl-module
105
+ )
106
+ set (glsl_module_generated_header
107
+ ${glsl_module_generated_header_dir} /slang-glsl-module-generated .h
108
+ )
109
+
110
+ # Propagate to parent directory scope, so they're visible to
111
+ # slang-glsl-module/CMakeLists.txt
112
+ set (glsl_module_generated_header_dir
113
+ ${glsl_module_generated_header_dir}
114
+ PARENT_SCOPE
115
+ )
116
+ set (glsl_module_generated_header ${glsl_module_generated_header} PARENT_SCOPE)
103
117
104
118
add_custom_command (
105
119
OUTPUT ${core_module_generated_header} ${glsl_module_generated_header}
106
120
COMMAND
107
121
slang-bootstrap -archive-type riff-lz4 -save-core-module-bin-source
108
- ${core_module_generated_header}
122
+ ${core_module_generated_header} -save-glsl-module-bin-source
123
+ ${glsl_module_generated_header}
109
124
DEPENDS slang-bootstrap
110
125
VERBATIM
111
126
)
127
+ # Add a target so that we can depend on the above step when we create the glsl
128
+ # module
129
+ add_custom_target (
130
+ generate_core_module_headers
131
+ DEPENDS ${core_module_generated_header} ${glsl_module_generated_header}
132
+ )
133
+ set_target_properties (generate_core_module_headers PROPERTIES FOLDER generated )
112
134
113
135
set (core_module_common_args
114
136
.
Original file line number Diff line number Diff line change 1
1
#
2
2
# Generate an embeddable glsl module
3
3
#
4
- set (glsl_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR} )
5
- set (glsl_module_generated_header
6
- ${glsl_module_generated_header_dir} /slang-glsl-module-generated .h
7
- )
8
- add_custom_command (
9
- OUTPUT ${glsl_module_generated_header}
10
- COMMAND
11
- slang-bootstrap -archive-type riff-lz4 -save-glsl-module-bin-source
12
- ${glsl_module_generated_header}
13
- DEPENDS slang-bootstrap
14
- VERBATIM
15
- )
16
4
5
+ # This header is generated in the same call to slang-bootstrap that generates
6
+ # the core module embed, which can be found in
7
+ # ../slang-core-module/CMakeLists.txt
8
+ # The target to look for is generate_core_module_headers
9
+
10
+ # CMake doesn't allow creating an implicit dependency across directory scopes,
11
+ # see https://cmake.org/cmake/help/v3.31/prop_sf/GENERATED.html. Because of
12
+ # this we add the explicit REQUIRES
17
13
slang_add_target(
18
14
.
19
15
MODULE
@@ -23,6 +19,7 @@ slang_add_target(
23
19
EXPLICIT_SOURCE
24
20
./slang-embedded-glsl-module.cpp
25
21
${glsl_module_generated_header}
22
+ REQUIRES generate_core_module_headers
26
23
EXCLUDE_FROM_ALL
27
24
EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL
28
25
EXPORT_SET_NAME SlangTargets
You can’t perform that action at this time.
0 commit comments