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
|
# FIXME: what's up with these?
#gsk_private_vulkan_include_shaders = [
# 'clip.frag.glsl',
# 'clip.vert.glsl',
# 'constants.glsl',
# 'rounded-rect.glsl',
#]
gsk_private_vulkan_fragment_shaders = [
'blend.frag',
'blur.frag',
'border.frag',
'color.frag',
'color-matrix.frag',
'inset-shadow.frag',
'linear.frag',
'outset-shadow.frag',
]
gsk_private_vulkan_vertex_shaders = [
'blend.vert',
'blur.vert',
'border.vert',
'color.vert',
'color-matrix.vert',
'inset-shadow.vert',
'linear.vert',
'outset-shadow.vert',
]
gsk_private_vulkan_shaders += gsk_private_vulkan_fragment_shaders
gsk_private_vulkan_shaders += gsk_private_vulkan_vertex_shaders
glslc = find_program('glslc', required: false)
foreach shader: gsk_private_vulkan_shaders
basefn = shader.split('.').get(0)
suffix = shader.split('.').get(1)
stage_arg = suffix == 'frag' ? '-fshader-stage=fragment' : '-fshader-stage=vertex'
spv_shader = '@0@.@1@.spv'.format(basefn, suffix)
clip_spv_shader = '@0@-clip.@1@.spv'.format(basefn, suffix)
clip_rounded_spv_shader = '@0@-clip-rounded.@1@.spv'.format(basefn, suffix)
if glslc.found()
compiled_shader = custom_target(spv_shader,
input: shader,
output: spv_shader,
build_by_default: true,
command: [
glslc,
stage_arg,
'-DCLIP_NONE',
'@INPUT@',
'-o', '@OUTPUT@'
])
compiled_clip_shader = custom_target(clip_spv_shader,
input: shader,
output: clip_spv_shader,
build_by_default: true,
command: [
glslc,
stage_arg,
'-DCLIP_RECT',
'@INPUT@',
'-o', '@OUTPUT@'
])
compiled_clip_rounded_shader = custom_target(clip_rounded_spv_shader,
input: shader,
output: clip_rounded_spv_shader,
build_by_default: true,
command: [
glslc,
stage_arg,
'-DCLIP_ROUNDED_RECT',
'@INPUT@',
'-o', '@OUTPUT@'
])
endif
gsk_private_vulkan_compiled_shaders += files(spv_shader)
gsk_private_vulkan_compiled_shaders += files(clip_spv_shader)
gsk_private_vulkan_compiled_shaders += files(clip_rounded_spv_shader)
endforeach
|