summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/meson.build60
1 files changed, 42 insertions, 18 deletions
diff --git a/src/render/meson.build b/src/render/meson.build
index e9c093a..2d9c02f 100644
--- a/src/render/meson.build
+++ b/src/render/meson.build
@@ -9,24 +9,48 @@ render_deps = [common_deps]
#render_src += ['renderer_tiger.c', 'queue_tiger.c']
#render_deps += [linmath]
-libplacebo = dependency('libplacebo',
- default_options: [
- 'warning_level=2',
- 'demos=false',
- 'tests=false',
- 'bench=false',
- 'fuzz=false',
- 'shaderc=enabled',
- 'glslang=disabled',
- 'opengl=enabled',
- 'vulkan=disabled',
- 'd3d11=disabled',
- 'gl-proc-addr=disabled',
- 'vk-proc-addr=disabled',
- 'lcms=enabled',
- 'dovi=disabled',
- 'libdovi=disabled'
- ], required: false, allow_fallback: true)
+libplacebo_opts = [
+ 'warning_level=2',
+ 'demos=false',
+ 'tests=false',
+ 'bench=false',
+ 'fuzz=false',
+ 'glslang=disabled',
+ 'd3d11=disabled',
+ 'gl-proc-addr=disabled',
+ 'vk-proc-addr=disabled',
+ 'lcms=disabled',
+ 'dovi=disabled',
+ 'libdovi=disabled'
+]
+
+use_vulkan = false
+if use_vulkan
+ shaderc_opts = cmake.subproject_options()
+ shaderc_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : 'Release' })
+ shaderc_opts.add_cmake_defines({ 'SHADERC_SKIP_INSTALL': false })
+ shaderc_opts.add_cmake_defines({ 'SHADERC_SKIP_TESTS': true })
+ shaderc_opts.add_cmake_defines({ 'SHADERC_SKIP_EXAMPLES': true })
+ shaderc_opts.add_cmake_defines({ 'SHADERC_SKIP_COPYRIGHT_CHECK': true })
+ shaderc_proj = cmake.subproject('shaderc', options: shaderc_opts)
+ shaderc = shaderc_proj.dependency('shaderc')
+ meson.override_dependency('shaderc', shaderc)
+ render_deps += [
+ shaderc_proj.dependency('shaderc_util'),
+ shaderc_proj.dependency('glslang'),
+ shaderc_proj.dependency('MachineIndependent'),
+ shaderc_proj.dependency('OSDependent'),
+ shaderc_proj.dependency('GenericCodeGen'),
+ shaderc_proj.dependency('SPIRV'),
+ shaderc_proj.dependency('SPIRV-Tools-opt'),
+ shaderc_proj.dependency('SPIRV-Tools-static')
+ ]
+ libplacebo_opts += ['shaderc=enabled', 'vulkan=enabled', 'opengl=disabled']
+else
+ libplacebo_opts += ['shaderc=disabled', 'opengl=enabled', 'vulkan=disabled']
+endif
+
+libplacebo = dependency('libplacebo', default_options: libplacebo_opts)
if libplacebo.found()
render_src += ['renderer_libplacebo.c', 'queue_libplacebo.c']
render_deps += [libplacebo]