mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
Use command:
find . -type f -not -path '*/.git/*' -exec sed -i 's/\benum pipe_shader_type\b/mesa_shader_stage/g' {} +
find . -type f -not -path '*/.git/*' -exec sed -i 's/\bpipe_shader_type\b/mesa_shader_stage/g' {} +
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36569>
143 lines
3.3 KiB
Meson
143 lines
3.3 KiB
Meson
# Copyright © 2024 Igalia S.L.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
_compiler_rs_sources = [
|
|
'as_slice.rs',
|
|
'bitset.rs',
|
|
'cfg.rs',
|
|
'memstream.rs',
|
|
'nir_instr_printer.rs',
|
|
'nir.rs',
|
|
'smallvec.rs',
|
|
]
|
|
|
|
_compiler_binding_types = [
|
|
'exec_list',
|
|
'exec_node',
|
|
'float_controls',
|
|
'gc_ctx',
|
|
'gl_access_qualifier',
|
|
'gl_frag_result',
|
|
'gl_interp_mode',
|
|
'mesa_shader_stage',
|
|
'gl_subgroup_size',
|
|
'gl_system_value',
|
|
'gl_tess_spacing',
|
|
'gl_varying_slot',
|
|
'gl_vert_attrib',
|
|
'glsl_type',
|
|
'nir_.*',
|
|
'mesa_scope',
|
|
'mesa_prim',
|
|
'mesa_shader_stage',
|
|
'shader_info',
|
|
'tess_primitive_mode',
|
|
'u_printf_info',
|
|
]
|
|
|
|
_compiler_bindgen_args = [
|
|
bindgen_output_args,
|
|
'--allowlist-var', 'NIR_.*',
|
|
'--allowlist-var', 'nir_.*_infos',
|
|
'--allowlist-var', 'rust_.*',
|
|
'--allowlist-function', 'glsl_.*',
|
|
'--allowlist-function', '_mesa_shader_stage_to_string',
|
|
'--allowlist-function', 'nir_.*',
|
|
'--allowlist-function', 'compiler_rs.*',
|
|
'--allowlist-function', 'u_memstream.*',
|
|
'--allowlist-type', 'u_memstream',
|
|
'--no-prepend-enum-name',
|
|
'--with-derive-default',
|
|
]
|
|
|
|
foreach type : _compiler_binding_types
|
|
_compiler_bindgen_args += ['--allowlist-type', type]
|
|
endforeach
|
|
|
|
_libcompiler_c_sources = files('rust_helpers.c')
|
|
|
|
_libcompiler_c = static_library(
|
|
'compiler_c_helpers',
|
|
[_libcompiler_c_sources],
|
|
include_directories : [inc_include, inc_util],
|
|
c_args : [no_override_init_args],
|
|
gnu_symbol_visibility : 'hidden',
|
|
)
|
|
|
|
_idep_libcompiler_c = declare_dependency(
|
|
include_directories: include_directories('.'),
|
|
link_with : _libcompiler_c,
|
|
)
|
|
|
|
_compiler_bindings_rs = rust.bindgen(
|
|
input : ['bindings.h'],
|
|
output : 'bindings.rs',
|
|
c_args : [
|
|
pre_args,
|
|
],
|
|
args : _compiler_bindgen_args,
|
|
dependencies : [
|
|
idep_nir_headers,
|
|
idep_mesautil,
|
|
],
|
|
)
|
|
|
|
compiler_rs_bindgen_blocklist = []
|
|
foreach type : _compiler_binding_types
|
|
compiler_rs_bindgen_blocklist += ['--blocklist-type', type]
|
|
endforeach
|
|
|
|
_compiler_rs_sources = structured_sources([
|
|
# lib.rs has to go first
|
|
'lib.rs',
|
|
_compiler_bindings_rs,
|
|
_compiler_rs_sources,
|
|
])
|
|
|
|
_libcompiler_rs = static_library(
|
|
'compiler',
|
|
_compiler_rs_sources,
|
|
gnu_symbol_visibility : 'hidden',
|
|
rust_abi : 'rust',
|
|
dependencies: [_idep_libcompiler_c],
|
|
)
|
|
|
|
# TODO: Linking Rust executables (such as unit tests) doesn't play nicely
|
|
# with the sanitizers because meson doesn't know to pass -fsanitize to the
|
|
# Rust linker. See also https://github.com/mesonbuild/meson/issues/11741
|
|
if with_tests and get_option('b_sanitize') == 'none'
|
|
rust.test(
|
|
'compiler_test',
|
|
_libcompiler_rs,
|
|
suite : ['compiler', 'rs'],
|
|
dependencies : [
|
|
idep_mesautil.partial_dependency(link_args : true, links : true),
|
|
],
|
|
# This is needed to ensure we link against glibc
|
|
# See also https://gitlab.freedesktop.org/mesa/mesa/-/issues/11632
|
|
rust_args: ['-C', 'default-linker-libraries'],
|
|
)
|
|
endif
|
|
|
|
idep_compiler_rs = declare_dependency(
|
|
link_with : _libcompiler_rs,
|
|
)
|
|
|
|
dep_syn = dependency('syn',
|
|
version : '>= 2.0.15',
|
|
fallback : ['syn-2-rs', 'dep_syn'],
|
|
required : true,
|
|
)
|
|
|
|
_libcompiler_proc_rs = static_library(
|
|
'compiler_proc',
|
|
'proc/lib.rs',
|
|
gnu_symbol_visibility : 'hidden',
|
|
dependencies : [dep_syn],
|
|
rust_abi : 'rust',
|
|
native : true,
|
|
)
|
|
|
|
idep_compiler_proc_rs = declare_dependency(
|
|
link_with : _libcompiler_proc_rs,
|
|
)
|