summaryrefslogtreecommitdiff
path: root/src/render/meson.build
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2026-08-26 15:08:16 -0400
committerAndrew Opalach <andrew@akon.city> 2026-08-26 15:08:16 -0400
commit6094c907b26e21f13373bae6bf3306dbae40af3c (patch)
tree981864ddb1ab9749d3e10a81edc782311826e101 /src/render/meson.build
parentda9bddc70ff8544f3294b880d719c4605e87ad97 (diff)
downloadcamu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.gz
camu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.bz2
camu-6094c907b26e21f13373bae6bf3306dbae40af3c.zip
Update deps, small changes and cleanup
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/render/meson.build')
-rw-r--r--src/render/meson.build56
1 files changed, 30 insertions, 26 deletions
diff --git a/src/render/meson.build b/src/render/meson.build
index d342312..ee0017a 100644
--- a/src/render/meson.build
+++ b/src/render/meson.build
@@ -23,15 +23,11 @@ elif get_option('renderer') == 'libplacebo'
'xxhash=auto'
]
- if get_option('renderer-api') == 'vulkan' or get_option('renderer-api') == 'dx11'
+ if renderer_api == 'vulkan' or renderer_api == 'dx11'
if get_option('renderer-compiler') == 'shaderc'
shaderc_found = false
if 'shaderc' not in get_option('force_fallback_for') and get_option('wrap_mode') != 'forcefallback'
- if is_windows
- shaderc = dependency('shaderc_combined', required: false, allow_fallback: false)
- else
- shaderc = dependency('shaderc', required: false, allow_fallback: false)
- endif
+ shaderc = dependency('shaderc', required: false, allow_fallback: false)
shaderc_found = shaderc.found()
endif
if shaderc_found
@@ -39,30 +35,35 @@ elif get_option('renderer') == 'libplacebo'
else
shaderc_opts = cmake.subproject_options()
shaderc_opts.set_override_option('warning_level', '0') # Doesn't work.
- reltype = is_minsize ? 'MinSizeRel' : 'Release'
- shaderc_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : reltype })
+ shaderc_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : cmake_reltype })
+ shaderc_opts.add_cmake_defines({ 'BUILD_SHARED_LIBS': false })
shaderc_opts.add_cmake_defines({ 'SHADERC_SKIP_INSTALL': true })
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_opts.add_cmake_defines({ 'SHADERC_ENABLE_HLSL': false })
+ # glslang & spirv-tools
+ shaderc_opts.add_cmake_defines({ 'ENABLE_RTTI': false })
# glslang
shaderc_opts.add_cmake_defines({ 'ENABLE_GLSLANG_BINARIES': false })
+ shaderc_opts.add_cmake_defines({ 'ENABLE_GLSLANG_JS': false })
shaderc_opts.add_cmake_defines({ 'ENABLE_HLSL': false })
- shaderc_opts.add_cmake_defines({ 'ENABLE_SPVREMAPPER': false })
shaderc_opts.add_cmake_defines({ 'ENABLE_EXCEPTIONS': false })
spirv_optimizer = true
shaderc_opts.add_cmake_defines({ 'ENABLE_OPT': spirv_optimizer })
# spirv-tools
+ shaderc_opts.add_cmake_defines({ 'SPIRV_ALLOW_TIMERS': false })
+ shaderc_opts.add_cmake_defines({ 'SPIRV_COLOR_TERMINAL': false })
shaderc_opts.add_cmake_defines({ 'ENABLE_EXCEPTIONS_ON_MSVC': false })
shaderc_proj = cmake.subproject('shaderc', options: shaderc_opts)
shaderc = shaderc_proj.dependency('shaderc')
meson.override_dependency('shaderc', declare_dependency(dependencies: shaderc, version: '2026.2'))
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('glslang'),
shaderc_proj.dependency('SPIRV'),
shaderc_proj.dependency('SPIRV-Tools-static')
]
@@ -72,17 +73,21 @@ elif get_option('renderer') == 'libplacebo'
endif
libplacebo_opts += ['shaderc=enabled', 'glslang=disabled']
else
- glslang = dependency('glslang', required: false, allow_fallback: false)
- if glslang.found()
+ glslang_found = false
+ if 'glslang' not in get_option('force_fallback_for') and get_option('wrap_mode') != 'forcefallback'
+ glslang = dependency('glslang', required: false, allow_fallback: false)
+ glslang_found = glslang.found()
+ endif
+ if glslang_found
render_deps += [glslang]
else
# Currently does not build.
- prefer_static = get_option('prefer_static')
+ spirv_headers_proj = cmake.subproject('SPIRV-Headers')
+ spirv_headers = spirv_headers_proj.dependency('SPIRV-Headers')
spirv_optimizer = false
if spirv_optimizer
- spirv_headers_proj = cmake.subproject('SPIRV-Headers')
- spirv_headers = spirv_headers_proj.dependency('SPIRV-Headers')
spirv_tools_opts = cmake.subproject_options()
+ spirv_tools_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : cmake_reltype })
spirv_tools_opts.add_cmake_defines({ 'SPIRV-Headers_SOURCE_DIR': meson.source_root() + '/subprojects/SPIRV-Headers-b824a46' })
spirv_tools_opts.add_cmake_defines({ 'ENABLE_EXCEPTIONS_ON_MSVC': false })
spirv_tools_proj = cmake.subproject('SPIRV-Tools', options: spirv_tools_opts)
@@ -91,8 +96,7 @@ elif get_option('renderer') == 'libplacebo'
endif
glslang_opts = cmake.subproject_options()
glslang_opts.set_override_option('warning_level', '0')
- reltype = is_minsize ? 'MinSizeRel' : 'Release'
- glslang_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : reltype })
+ glslang_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : cmake_reltype })
glslang_opts.add_cmake_defines({ 'ENABLE_GLSLANG_BINARIES': false })
glslang_opts.add_cmake_defines({ 'ENABLE_HLSL': false })
glslang_opts.add_cmake_defines({ 'ENABLE_SPVREMAPPER': false })
@@ -100,24 +104,25 @@ elif get_option('renderer') == 'libplacebo'
glslang_opts.add_cmake_defines({ 'ENABLE_OPT': spirv_optimizer })
glslang_opts.add_cmake_defines({ 'ALLOW_EXTERNAL_SPIRV_TOOLS': spirv_optimizer })
glslang_proj = cmake.subproject('glslang', options: glslang_opts)
- spirv = glslang_proj.dependency('SPIRV')
glslang = glslang_proj.dependency('glslang')
glslang_default_resource_limits = glslang_proj.dependency('glslang-default-resource-limits')
- meson.override_dependency('SPIRV', spirv, static: prefer_static)
+ spirv = glslang_proj.dependency('SPIRV')
+ prefer_static = get_option('prefer_static')
meson.override_dependency('glslang', glslang, static: prefer_static)
meson.override_dependency('glslang-default-resource-limits', glslang_default_resource_limits, static: prefer_static)
+ meson.override_dependency('SPIRV', spirv, static: prefer_static)
render_deps += [
glslang_proj.dependency('MachineIndependent'),
glslang_proj.dependency('OSDependent'),
glslang_proj.dependency('GenericCodeGen'),
- spirv,
glslang,
- glslang_default_resource_limits
+ glslang_default_resource_limits,
+ spirv,
+ spirv_headers
]
if spirv_optimizer
render_deps += [
spirv_tools,
- spirv_headers,
spirv_tools_opt
]
endif
@@ -128,12 +133,11 @@ elif get_option('renderer') == 'libplacebo'
libplacebo_opts += ['glslang=disabled', 'shaderc=disabled']
endif
- if get_option('renderer-api') == 'vulkan'
+ if renderer_api == 'vulkan'
libplacebo_opts += ['vulkan=enabled', 'd3d11=disabled', 'opengl=disabled']
- elif get_option('renderer-api') == 'dx11'
+ elif renderer_api == 'dx11'
spirv_cross_opts = cmake.subproject_options()
- reltype = is_minsize ? 'MinSizeRel' : 'Release'
- spirv_cross_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : reltype })
+ spirv_cross_opts.add_cmake_defines({ 'CMAKE_BUILD_TYPE': is_debug ? 'Debug' : cmake_reltype })
spirv_cross_opts.add_cmake_defines({ 'SPIRV_CROSS_CLI': false })
spirv_cross_opts.add_cmake_defines({ 'SPIRV_CROSS_ENABLE_TESTS': false })
spirv_cross_opts.add_cmake_defines({ 'SPIRV_CROSS_ENABLE_MSL': false })