Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / compiler / meson.build
index 9a40e2e3a1a0e7201ead30e8020ff85fe26a625a..a74a630f0f90bc4c6bfb45b2e4a685771a2c1926 100644 (file)
 # 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',
@@ -35,23 +33,68 @@ files_libcompiler = files(
   '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')