From 9065d8778e63ea919506fd0d4a0692042fb503fb Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Tue, 16 Jan 2024 21:01:49 -0500 Subject: Improve windows build - Support using libplacebo vulkan backend on windows Signed-off-by: Andrew Opalach --- src/render/meson.build | 60 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 18 deletions(-) (limited to 'src/render') 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] -- cgit v1.2.3-101-g0448