-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
415 lines (405 loc) · 27.3 KB
/
CMakeLists.txt
File metadata and controls
415 lines (405 loc) · 27.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
cmake_minimum_required(VERSION 3.20)
project(v_type C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
enable_testing()
add_subdirectory(DefconDraw)
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 REQUIRED sdl2)
pkg_check_modules(SDL2_IMAGE QUIET SDL2_image)
pkg_check_modules(OPENMPT QUIET libopenmpt)
find_package(Vulkan REQUIRED)
add_executable(v_type
src/acoustics_ui_layout.c
src/audio.c
src/boss.c
src/enemy.c
src/game.c
src/level_editor.c
src/leveldef.c
src/main.c
src/menu.c
src/obj_model.c
src/planetarium/planetarium_registry.c
src/planetarium/planetarium_validate.c
src/render.c
src/settings.c
src/texture_atlas.c
src/wavetable_poly_synth_lib.c
)
set_target_properties(v_type PROPERTIES OUTPUT_NAME "VectorSwarm")
target_include_directories(v_type PRIVATE ${SDL2_INCLUDE_DIRS})
target_link_libraries(v_type PRIVATE vg ${SDL2_LIBRARIES} Vulkan::Vulkan m)
target_compile_options(v_type PRIVATE ${SDL2_CFLAGS_OTHER})
if(OPENMPT_FOUND)
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_OPENMPT=1)
target_include_directories(v_type PRIVATE ${OPENMPT_INCLUDE_DIRS})
target_link_libraries(v_type PRIVATE ${OPENMPT_LIBRARIES})
target_compile_options(v_type PRIVATE ${OPENMPT_CFLAGS_OTHER})
else()
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_OPENMPT=0)
endif()
if(SDL2_IMAGE_FOUND)
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_SDL_IMAGE=1)
target_include_directories(v_type PRIVATE ${SDL2_IMAGE_INCLUDE_DIRS})
target_link_libraries(v_type PRIVATE ${SDL2_IMAGE_LIBRARIES})
target_compile_options(v_type PRIVATE ${SDL2_IMAGE_CFLAGS_OTHER})
else()
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_SDL_IMAGE=0)
endif()
if(TARGET vg_demo_vk_shaders)
add_dependencies(v_type vg_demo_vk_shaders)
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_POST_SHADERS=1)
target_include_directories(v_type PRIVATE ${CMAKE_BINARY_DIR}/DefconDraw/generated/demo_shaders)
else()
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_POST_SHADERS=0)
endif()
find_program(GLSLANG_VALIDATOR glslangValidator)
find_program(XXD_EXECUTABLE xxd)
if(GLSLANG_VALIDATOR AND XXD_EXECUTABLE)
set(V_TYPE_SHADER_GEN_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated/shaders)
file(MAKE_DIRECTORY ${V_TYPE_SHADER_GEN_DIR})
set(V_TYPE_TERRAIN_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/terrain.vert.spv)
set(V_TYPE_TERRAIN_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/terrain.frag.spv)
set(V_TYPE_TERRAIN_WIRE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/terrain_wire.vert.spv)
set(V_TYPE_TERRAIN_WIRE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/terrain_wire.frag.spv)
set(V_TYPE_PARTICLE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/particle.vert.spv)
set(V_TYPE_PARTICLE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/particle.frag.spv)
set(V_TYPE_PARTICLE_BLOOM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/particle_bloom.frag.spv)
set(V_TYPE_COMPOSITE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/composite.frag.spv)
set(V_TYPE_SPHERE_PARTICLE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_particle.vert.spv)
set(V_TYPE_SPHERE_PARTICLE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_particle.frag.spv)
set(V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_particle_bloom.frag.spv)
set(V_TYPE_SPHERE_HOLOGRAM_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram.vert.spv)
set(V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_shell.frag.spv)
set(V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_line.frag.spv)
set(V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_glow.frag.spv)
set(V_TYPE_SPHERE_ION_STORM_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm.vert.spv)
set(V_TYPE_SPHERE_ION_STORM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm.frag.spv)
set(V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm_bloom.frag.spv)
set(V_TYPE_WORMHOLE_LINE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/wormhole_line.vert.spv)
set(V_TYPE_WORMHOLE_LINE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/wormhole_line.frag.spv)
set(V_TYPE_RADAR_LINE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/radar_line.vert.spv)
set(V_TYPE_RADAR_LINE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/radar_line.frag.spv)
set(V_TYPE_FOG_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/fog.vert.spv)
set(V_TYPE_FOG_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/fog.frag.spv)
set(V_TYPE_UNDERWATER_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/underwater.frag.spv)
set(V_TYPE_UNDERWATER_KELP_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/underwater_kelp.frag.spv)
set(V_TYPE_FIRE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/fire.frag.spv)
set(V_TYPE_ICE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/ice.frag.spv)
set(V_TYPE_FOREST_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/forest.frag.spv)
set(V_TYPE_FOREST_CACHE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/forest_cache.frag.spv)
set(V_TYPE_FOREST_FLORA_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/forest_flora.frag.spv)
set(V_TYPE_GRID_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/grid.vert.spv)
set(V_TYPE_GRID_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/grid.frag.spv)
set(V_TYPE_GRID_SIM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/grid_sim.frag.spv)
set(V_TYPE_ARC_BEAM_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/arc_beam.vert.spv)
set(V_TYPE_ARC_BEAM_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/arc_beam.frag.spv)
set(V_TYPE_INDUSTRY_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/industry.frag.spv)
set(V_TYPE_REVOLVER_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/revolver.frag.spv)
set(V_TYPE_STRUCTURE_TILE_VERT_SPV ${V_TYPE_SHADER_GEN_DIR}/structure_tile.vert.spv)
set(V_TYPE_STRUCTURE_TILE_FRAG_SPV ${V_TYPE_SHADER_GEN_DIR}/structure_tile.frag.spv)
set(V_TYPE_TERRAIN_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/terrain_vert_spv.h)
set(V_TYPE_TERRAIN_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/terrain_frag_spv.h)
set(V_TYPE_TERRAIN_WIRE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/terrain_wire_vert_spv.h)
set(V_TYPE_TERRAIN_WIRE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/terrain_wire_frag_spv.h)
set(V_TYPE_PARTICLE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/particle_vert_spv.h)
set(V_TYPE_PARTICLE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/particle_frag_spv.h)
set(V_TYPE_PARTICLE_BLOOM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/particle_bloom_frag_spv.h)
set(V_TYPE_COMPOSITE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/composite_frag_spv.h)
set(V_TYPE_SPHERE_PARTICLE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_particle_vert_spv.h)
set(V_TYPE_SPHERE_PARTICLE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_particle_frag_spv.h)
set(V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_particle_bloom_frag_spv.h)
set(V_TYPE_SPHERE_HOLOGRAM_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_vert_spv.h)
set(V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_shell_frag_spv.h)
set(V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_line_frag_spv.h)
set(V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_hologram_glow_frag_spv.h)
set(V_TYPE_SPHERE_ION_STORM_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm_vert_spv.h)
set(V_TYPE_SPHERE_ION_STORM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm_frag_spv.h)
set(V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/sphere_ion_storm_bloom_frag_spv.h)
set(V_TYPE_WORMHOLE_LINE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/wormhole_line_vert_spv.h)
set(V_TYPE_WORMHOLE_LINE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/wormhole_line_frag_spv.h)
set(V_TYPE_RADAR_LINE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/radar_line_vert_spv.h)
set(V_TYPE_RADAR_LINE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/radar_line_frag_spv.h)
set(V_TYPE_FOG_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/fog_vert_spv.h)
set(V_TYPE_FOG_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/fog_frag_spv.h)
set(V_TYPE_UNDERWATER_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/underwater_frag_spv.h)
set(V_TYPE_UNDERWATER_KELP_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/underwater_kelp_frag_spv.h)
set(V_TYPE_FIRE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/fire_frag_spv.h)
set(V_TYPE_ICE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/ice_frag_spv.h)
set(V_TYPE_FOREST_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/forest_frag_spv.h)
set(V_TYPE_FOREST_CACHE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/forest_cache_frag_spv.h)
set(V_TYPE_FOREST_FLORA_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/forest_flora_frag_spv.h)
set(V_TYPE_GRID_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/grid_vert_spv.h)
set(V_TYPE_GRID_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/grid_frag_spv.h)
set(V_TYPE_GRID_SIM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/grid_sim_frag_spv.h)
set(V_TYPE_ARC_BEAM_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/arc_beam_vert_spv.h)
set(V_TYPE_ARC_BEAM_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/arc_beam_frag_spv.h)
set(V_TYPE_INDUSTRY_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/industry_frag_spv.h)
set(V_TYPE_REVOLVER_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/revolver_frag_spv.h)
set(V_TYPE_STRUCTURE_TILE_VERT_HDR ${V_TYPE_SHADER_GEN_DIR}/structure_tile_vert_spv.h)
set(V_TYPE_STRUCTURE_TILE_FRAG_HDR ${V_TYPE_SHADER_GEN_DIR}/structure_tile_frag_spv.h)
add_custom_command(
OUTPUT ${V_TYPE_TERRAIN_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain.vert -o ${V_TYPE_TERRAIN_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_terrain_vert_spv ${V_TYPE_TERRAIN_VERT_SPV} > ${V_TYPE_TERRAIN_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain.vert
)
add_custom_command(
OUTPUT ${V_TYPE_TERRAIN_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain.frag -o ${V_TYPE_TERRAIN_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_terrain_frag_spv ${V_TYPE_TERRAIN_FRAG_SPV} > ${V_TYPE_TERRAIN_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain.frag
)
add_custom_command(
OUTPUT ${V_TYPE_TERRAIN_WIRE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain_wire.vert -o ${V_TYPE_TERRAIN_WIRE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_terrain_wire_vert_spv ${V_TYPE_TERRAIN_WIRE_VERT_SPV} > ${V_TYPE_TERRAIN_WIRE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain_wire.vert
)
add_custom_command(
OUTPUT ${V_TYPE_TERRAIN_WIRE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain_wire.frag -o ${V_TYPE_TERRAIN_WIRE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_terrain_wire_frag_spv ${V_TYPE_TERRAIN_WIRE_FRAG_SPV} > ${V_TYPE_TERRAIN_WIRE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/terrain_wire.frag
)
add_custom_command(
OUTPUT ${V_TYPE_PARTICLE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle.vert -o ${V_TYPE_PARTICLE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_particle_vert_spv ${V_TYPE_PARTICLE_VERT_SPV} > ${V_TYPE_PARTICLE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle.vert
)
add_custom_command(
OUTPUT ${V_TYPE_PARTICLE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle.frag -o ${V_TYPE_PARTICLE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_particle_frag_spv ${V_TYPE_PARTICLE_FRAG_SPV} > ${V_TYPE_PARTICLE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle.frag
)
add_custom_command(
OUTPUT ${V_TYPE_PARTICLE_BLOOM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle_bloom.frag -o ${V_TYPE_PARTICLE_BLOOM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_particle_bloom_frag_spv ${V_TYPE_PARTICLE_BLOOM_FRAG_SPV} > ${V_TYPE_PARTICLE_BLOOM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/particle_bloom.frag
)
add_custom_command(
OUTPUT ${V_TYPE_COMPOSITE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/composite.frag -o ${V_TYPE_COMPOSITE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_composite_frag_spv ${V_TYPE_COMPOSITE_FRAG_SPV} > ${V_TYPE_COMPOSITE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/composite.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_PARTICLE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle.vert -o ${V_TYPE_SPHERE_PARTICLE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_particle_vert_spv ${V_TYPE_SPHERE_PARTICLE_VERT_SPV} > ${V_TYPE_SPHERE_PARTICLE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle.vert
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_PARTICLE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle.frag -o ${V_TYPE_SPHERE_PARTICLE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_particle_frag_spv ${V_TYPE_SPHERE_PARTICLE_FRAG_SPV} > ${V_TYPE_SPHERE_PARTICLE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle_bloom.frag -o ${V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_particle_bloom_frag_spv ${V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_SPV} > ${V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_particle_bloom.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_HOLOGRAM_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram.vert -o ${V_TYPE_SPHERE_HOLOGRAM_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_hologram_vert_spv ${V_TYPE_SPHERE_HOLOGRAM_VERT_SPV} > ${V_TYPE_SPHERE_HOLOGRAM_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram.vert
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_shell.frag -o ${V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_hologram_shell_frag_spv ${V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_SPV} > ${V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_shell.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_line.frag -o ${V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_hologram_line_frag_spv ${V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_SPV} > ${V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_line.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_glow.frag -o ${V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_hologram_glow_frag_spv ${V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_SPV} > ${V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_hologram_glow.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_ION_STORM_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm.vert -o ${V_TYPE_SPHERE_ION_STORM_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_ion_storm_vert_spv ${V_TYPE_SPHERE_ION_STORM_VERT_SPV} > ${V_TYPE_SPHERE_ION_STORM_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm.vert
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_ION_STORM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm.frag -o ${V_TYPE_SPHERE_ION_STORM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_ion_storm_frag_spv ${V_TYPE_SPHERE_ION_STORM_FRAG_SPV} > ${V_TYPE_SPHERE_ION_STORM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm.frag
)
add_custom_command(
OUTPUT ${V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm_bloom.frag -o ${V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_sphere_ion_storm_bloom_frag_spv ${V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_SPV} > ${V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/sphere_ion_storm_bloom.frag
)
add_custom_command(
OUTPUT ${V_TYPE_WORMHOLE_LINE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/wormhole_line.vert -o ${V_TYPE_WORMHOLE_LINE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_wormhole_line_vert_spv ${V_TYPE_WORMHOLE_LINE_VERT_SPV} > ${V_TYPE_WORMHOLE_LINE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/wormhole_line.vert
)
add_custom_command(
OUTPUT ${V_TYPE_WORMHOLE_LINE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/wormhole_line.frag -o ${V_TYPE_WORMHOLE_LINE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_wormhole_line_frag_spv ${V_TYPE_WORMHOLE_LINE_FRAG_SPV} > ${V_TYPE_WORMHOLE_LINE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/wormhole_line.frag
)
add_custom_command(
OUTPUT ${V_TYPE_RADAR_LINE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/radar_line.vert -o ${V_TYPE_RADAR_LINE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_radar_line_vert_spv ${V_TYPE_RADAR_LINE_VERT_SPV} > ${V_TYPE_RADAR_LINE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/radar_line.vert
)
add_custom_command(
OUTPUT ${V_TYPE_RADAR_LINE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/radar_line.frag -o ${V_TYPE_RADAR_LINE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_radar_line_frag_spv ${V_TYPE_RADAR_LINE_FRAG_SPV} > ${V_TYPE_RADAR_LINE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/radar_line.frag
)
add_custom_command(
OUTPUT ${V_TYPE_FOG_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fog.vert -o ${V_TYPE_FOG_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_fog_vert_spv ${V_TYPE_FOG_VERT_SPV} > ${V_TYPE_FOG_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fog.vert
)
add_custom_command(
OUTPUT ${V_TYPE_FOG_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fog.frag -o ${V_TYPE_FOG_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_fog_frag_spv ${V_TYPE_FOG_FRAG_SPV} > ${V_TYPE_FOG_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fog.frag
)
add_custom_command(
OUTPUT ${V_TYPE_UNDERWATER_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/underwater.frag -o ${V_TYPE_UNDERWATER_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_underwater_frag_spv ${V_TYPE_UNDERWATER_FRAG_SPV} > ${V_TYPE_UNDERWATER_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/underwater.frag
)
add_custom_command(
OUTPUT ${V_TYPE_UNDERWATER_KELP_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/underwater_kelp.frag -o ${V_TYPE_UNDERWATER_KELP_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_underwater_kelp_frag_spv ${V_TYPE_UNDERWATER_KELP_FRAG_SPV} > ${V_TYPE_UNDERWATER_KELP_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/underwater_kelp.frag
)
add_custom_command(
OUTPUT ${V_TYPE_FIRE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fire.frag -o ${V_TYPE_FIRE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_fire_frag_spv ${V_TYPE_FIRE_FRAG_SPV} > ${V_TYPE_FIRE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/fire.frag
)
add_custom_command(
OUTPUT ${V_TYPE_ICE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/ice.frag -o ${V_TYPE_ICE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_ice_frag_spv ${V_TYPE_ICE_FRAG_SPV} > ${V_TYPE_ICE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/ice.frag
)
add_custom_command(
OUTPUT ${V_TYPE_FOREST_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest.frag -o ${V_TYPE_FOREST_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_forest_frag_spv ${V_TYPE_FOREST_FRAG_SPV} > ${V_TYPE_FOREST_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest.frag
)
add_custom_command(
OUTPUT ${V_TYPE_FOREST_CACHE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest_cache.frag -o ${V_TYPE_FOREST_CACHE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_forest_cache_frag_spv ${V_TYPE_FOREST_CACHE_FRAG_SPV} > ${V_TYPE_FOREST_CACHE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest_cache.frag
)
add_custom_command(
OUTPUT ${V_TYPE_FOREST_FLORA_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest_flora.frag -o ${V_TYPE_FOREST_FLORA_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_forest_flora_frag_spv ${V_TYPE_FOREST_FLORA_FRAG_SPV} > ${V_TYPE_FOREST_FLORA_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/forest_flora.frag
)
add_custom_command(
OUTPUT ${V_TYPE_GRID_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid.vert -o ${V_TYPE_GRID_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_grid_vert_spv ${V_TYPE_GRID_VERT_SPV} > ${V_TYPE_GRID_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid.vert
)
add_custom_command(
OUTPUT ${V_TYPE_GRID_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid.frag -o ${V_TYPE_GRID_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_grid_frag_spv ${V_TYPE_GRID_FRAG_SPV} > ${V_TYPE_GRID_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid.frag
)
add_custom_command(
OUTPUT ${V_TYPE_GRID_SIM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid_sim.frag -o ${V_TYPE_GRID_SIM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_grid_sim_frag_spv ${V_TYPE_GRID_SIM_FRAG_SPV} > ${V_TYPE_GRID_SIM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/grid_sim.frag
)
add_custom_command(
OUTPUT ${V_TYPE_ARC_BEAM_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/arc_beam.vert -o ${V_TYPE_ARC_BEAM_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_arc_beam_vert_spv ${V_TYPE_ARC_BEAM_VERT_SPV} > ${V_TYPE_ARC_BEAM_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/arc_beam.vert
)
add_custom_command(
OUTPUT ${V_TYPE_ARC_BEAM_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/arc_beam.frag -o ${V_TYPE_ARC_BEAM_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_arc_beam_frag_spv ${V_TYPE_ARC_BEAM_FRAG_SPV} > ${V_TYPE_ARC_BEAM_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/arc_beam.frag
)
add_custom_command(
OUTPUT ${V_TYPE_INDUSTRY_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/industry.frag -o ${V_TYPE_INDUSTRY_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_industry_frag_spv ${V_TYPE_INDUSTRY_FRAG_SPV} > ${V_TYPE_INDUSTRY_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/industry.frag
)
add_custom_command(
OUTPUT ${V_TYPE_REVOLVER_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/revolver.frag -o ${V_TYPE_REVOLVER_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_revolver_frag_spv ${V_TYPE_REVOLVER_FRAG_SPV} > ${V_TYPE_REVOLVER_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/revolver.frag
)
add_custom_command(
OUTPUT ${V_TYPE_STRUCTURE_TILE_VERT_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/structure_tile.vert -o ${V_TYPE_STRUCTURE_TILE_VERT_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_structure_tile_vert_spv ${V_TYPE_STRUCTURE_TILE_VERT_SPV} > ${V_TYPE_STRUCTURE_TILE_VERT_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/structure_tile.vert
)
add_custom_command(
OUTPUT ${V_TYPE_STRUCTURE_TILE_FRAG_HDR}
COMMAND ${GLSLANG_VALIDATOR} -V ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/structure_tile.frag -o ${V_TYPE_STRUCTURE_TILE_FRAG_SPV}
COMMAND ${XXD_EXECUTABLE} -i -n v_type_structure_tile_frag_spv ${V_TYPE_STRUCTURE_TILE_FRAG_SPV} > ${V_TYPE_STRUCTURE_TILE_FRAG_HDR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/structure_tile.frag
)
add_custom_target(v_type_vk_shaders DEPENDS ${V_TYPE_TERRAIN_VERT_HDR} ${V_TYPE_TERRAIN_FRAG_HDR} ${V_TYPE_TERRAIN_WIRE_VERT_HDR} ${V_TYPE_TERRAIN_WIRE_FRAG_HDR} ${V_TYPE_PARTICLE_VERT_HDR} ${V_TYPE_PARTICLE_FRAG_HDR} ${V_TYPE_PARTICLE_BLOOM_FRAG_HDR} ${V_TYPE_COMPOSITE_FRAG_HDR} ${V_TYPE_SPHERE_PARTICLE_VERT_HDR} ${V_TYPE_SPHERE_PARTICLE_FRAG_HDR} ${V_TYPE_SPHERE_PARTICLE_BLOOM_FRAG_HDR} ${V_TYPE_SPHERE_HOLOGRAM_VERT_HDR} ${V_TYPE_SPHERE_HOLOGRAM_SHELL_FRAG_HDR} ${V_TYPE_SPHERE_HOLOGRAM_LINE_FRAG_HDR} ${V_TYPE_SPHERE_HOLOGRAM_GLOW_FRAG_HDR} ${V_TYPE_SPHERE_ION_STORM_VERT_HDR} ${V_TYPE_SPHERE_ION_STORM_FRAG_HDR} ${V_TYPE_SPHERE_ION_STORM_BLOOM_FRAG_HDR} ${V_TYPE_WORMHOLE_LINE_VERT_HDR} ${V_TYPE_WORMHOLE_LINE_FRAG_HDR} ${V_TYPE_RADAR_LINE_VERT_HDR} ${V_TYPE_RADAR_LINE_FRAG_HDR} ${V_TYPE_FOG_VERT_HDR} ${V_TYPE_FOG_FRAG_HDR} ${V_TYPE_UNDERWATER_FRAG_HDR} ${V_TYPE_UNDERWATER_KELP_FRAG_HDR} ${V_TYPE_FIRE_FRAG_HDR} ${V_TYPE_ICE_FRAG_HDR} ${V_TYPE_FOREST_FRAG_HDR} ${V_TYPE_FOREST_CACHE_FRAG_HDR} ${V_TYPE_FOREST_FLORA_FRAG_HDR} ${V_TYPE_GRID_VERT_HDR} ${V_TYPE_GRID_FRAG_HDR} ${V_TYPE_GRID_SIM_FRAG_HDR} ${V_TYPE_ARC_BEAM_VERT_HDR} ${V_TYPE_ARC_BEAM_FRAG_HDR} ${V_TYPE_INDUSTRY_FRAG_HDR} ${V_TYPE_REVOLVER_FRAG_HDR} ${V_TYPE_STRUCTURE_TILE_VERT_HDR} ${V_TYPE_STRUCTURE_TILE_FRAG_HDR})
add_dependencies(v_type v_type_vk_shaders)
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_TERRAIN_SHADERS=1)
target_include_directories(v_type PRIVATE ${V_TYPE_SHADER_GEN_DIR})
else()
target_compile_definitions(v_type PRIVATE V_TYPE_HAS_TERRAIN_SHADERS=0)
endif()
add_executable(level_roundtrip_test
tests/level_roundtrip_test.c
src/boss.c
src/level_editor.c
src/leveldef.c
src/texture_atlas.c
)
target_include_directories(level_roundtrip_test PRIVATE
src
DefconDraw/include
)
target_compile_definitions(level_roundtrip_test PRIVATE VTYPE_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(level_roundtrip_test PRIVATE _POSIX_C_SOURCE=200809L)
target_compile_definitions(level_roundtrip_test PRIVATE V_TYPE_BOSS_NO_RUNTIME_WEAPONS=1)
target_link_libraries(level_roundtrip_test PRIVATE m)
add_test(NAME level_roundtrip_test COMMAND $<TARGET_FILE:level_roundtrip_test>)