summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-01-16 21:01:49 -0500
committerAndrew Opalach <andrew@akon.city> 2024-01-16 21:01:49 -0500
commit9065d8778e63ea919506fd0d4a0692042fb503fb (patch)
tree09de40e56ac924e60c4f3c080ac74a5064049e90 /src/render
parent863eda6c45a0ed0bf5f460dde6177c257d57cff8 (diff)
downloadcamu-9065d8778e63ea919506fd0d4a0692042fb503fb.tar.gz
camu-9065d8778e63ea919506fd0d4a0692042fb503fb.tar.bz2
camu-9065d8778e63ea919506fd0d4a0692042fb503fb.zip
Improve windows build
- Support using libplacebo vulkan backend on windows Signed-off-by: Andrew Opalach <andrew@akon.city>
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]