# SOFTWARE.
inc_compiler = include_directories('.')
-inc_nir = include_directories('nir')
inc_glsl = include_directories('glsl')
-
-subdir('glsl')
+inc_spirv = include_directories('spirv')
files_libcompiler = files(
'builtin_type_macros.h',
'shader_info.h',
)
+ir_expression_operation_h = custom_target(
+ 'ir_expression_operation.h',
+ input : 'glsl/ir_expression_operation.py',
+ output : 'ir_expression_operation.h',
+ command : [prog_python, '@INPUT@', 'enum'],
+ capture : true,
+)
+
libcompiler = static_library(
'compiler',
[files_libcompiler, ir_expression_operation_h],
- include_directories : [inc_mapi, inc_mesa, inc_compiler, inc_common],
- c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args],
- cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
+ include_directories : [inc_mapi, inc_mesa, inc_compiler, inc_include, inc_src, inc_gallium, inc_gallium_aux],
+ c_args : [c_msvc_compat_args, no_override_init_args],
+ cpp_args : [cpp_msvc_compat_args],
+ gnu_symbol_visibility : 'hidden',
+ dependencies : [dep_valgrind],
build_by_default : false,
)
+subdir('spirv')
+
subdir('nir')
+# These are here because putting it in spirv/meson.build would create a circular
+# dependency with nir/meson.build.
spirv2nir = executable(
'spirv2nir',
- [files('spirv/spirv2nir.c'), dummy_cpp],
- dependencies : [dep_m, dep_thread],
- include_directories : [inc_common, inc_nir, include_directories('spirv')],
- link_with : [libnir, libmesa_util],
- c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args],
- build_by_default : false,
+ files('spirv/spirv2nir.c'),
+ dependencies : [dep_m, idep_nir, idep_mesautil],
+ include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, include_directories('spirv')],
+ c_args : [c_msvc_compat_args, no_override_init_args],
+ gnu_symbol_visibility : 'hidden',
+ build_by_default : with_tools.contains('nir'),
+ install : with_tools.contains('nir'),
)
+
+if with_tests
+ test(
+ 'avail_vis',
+ executable(
+ 'avail_vis',
+ files('spirv/tests/avail_vis.cpp'),
+ c_args : [c_msvc_compat_args, no_override_init_args],
+ gnu_symbol_visibility : 'hidden',
+ include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
+ dependencies : [dep_thread, idep_gtest, idep_nir, idep_mesautil],
+ ),
+ suite : ['compiler', 'spirv'],
+ )
+
+ test(
+ 'volatile',
+ executable(
+ 'volatile',
+ files('spirv/tests/volatile.cpp'),
+ c_args : [c_msvc_compat_args, no_override_init_args],
+ gnu_symbol_visibility : 'hidden',
+ include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
+ dependencies : [dep_thread, idep_gtest, idep_nir, idep_mesautil],
+ ),
+ suite : ['compiler', 'spirv'],
+ )
+endif
+
+subdir('glsl')