meson: fix android vulkan build
[mesa.git] / src / freedreno / vulkan / meson.build
index 40cc1f88a747d9e63ee30a2028d7078b62c4e867..8696f246da0ffbbaa8624ec22bc62a9c9fc303f6 100644 (file)
@@ -39,70 +39,115 @@ tu_extensions_c = custom_target(
   ],
 )
 
-vk_format_table_c = custom_target(
-  'vk_format_table.c',
-  input : ['vk_format_table.py', 'vk_format_layout.csv'],
-  output : 'vk_format_table.c',
-  command : [prog_python, '@INPUT@'],
-  depend_files : files('vk_format_parse.py'),
-  capture : true,
-)
-
 libtu_files = files(
+  'tu_clear_blit.c',
   'tu_cmd_buffer.c',
+  'tu_cs.c',
+  'tu_cs.h',
   'tu_device.c',
   'tu_descriptor_set.c',
   'tu_descriptor_set.h',
+  'tu_drm.c',
+  'tu_fence.c',
   'tu_formats.c',
-  'tu_gem.c',
   'tu_image.c',
-  'tu_meta_blit.c',
-  'tu_meta_buffer.c',
-  'tu_meta_clear.c',
-  'tu_meta_copy.c',
-  'tu_meta_resolve.c',
   'tu_pass.c',
   'tu_pipeline.c',
   'tu_pipeline_cache.c',
   'tu_private.h',
   'tu_query.c',
+  'tu_shader.c',
   'tu_util.c',
   'tu_util.h',
+  'tu_wsi.c',
   'vk_format.h',
 )
 
 tu_deps = []
 tu_flags = []
 
+if with_platform_x11
+  tu_deps += dep_xcb_dri3
+  tu_flags += [
+    '-DVK_USE_PLATFORM_XCB_KHR',
+    '-DVK_USE_PLATFORM_XLIB_KHR',
+  ]
+  libtu_files += files('tu_wsi_x11.c')
+endif
+
+if with_platform_wayland
+  tu_deps += dep_wayland_client
+  tu_flags += '-DVK_USE_PLATFORM_WAYLAND_KHR'
+  libtu_files += files('tu_wsi_wayland.c')
+endif
+
+if system_has_kms_drm and not with_platform_android
+  tu_flags += '-DVK_USE_PLATFORM_DISPLAY_KHR'
+  libtu_files += files('tu_wsi_display.c')
+endif
+
+if with_platform_android
+  tu_flags += '-DVK_USE_PLATFORM_ANDROID_KHR'
+  libtu_files += files('tu_android.c')
+  tu_deps += [dep_android]
+endif
+
+if with_xlib_lease
+  tu_deps += [dep_xcb_xrandr, dep_xlib_xrandr]
+  tu_flags += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT'
+endif
+
 libvulkan_freedreno = shared_library(
   'vulkan_freedreno',
-  [libtu_files, tu_entrypoints, tu_extensions_c, vk_format_table_c],
+  [libtu_files, tu_entrypoints, tu_extensions_c, freedreno_xml_header_files],
   include_directories : [
-    inc_common,
+    inc_include,
+    inc_src,
+    inc_mapi,
+    inc_mesa,
+    inc_gallium,
+    inc_gallium_aux,
     inc_compiler,
-    inc_vulkan_util,
+    inc_vulkan_wsi,
     inc_freedreno,
   ],
   link_with : [
-    libfreedreno_drm,
-    libvulkan_util,
-    libmesa_util,
+    libvulkan_wsi,
+    libfreedreno_ir3,
+    libfreedreno_layout,
   ],
   dependencies : [
+    idep_libfreedreno_common,
     dep_dl,
     dep_elf,
     dep_libdrm,
-    dep_llvm,
     dep_m,
     dep_thread,
     dep_valgrind,
     idep_nir,
+    tu_deps,
+    idep_vulkan_util,
+    idep_mesautil,
   ],
-  c_args : [c_vis_args, no_override_init_args, tu_flags],
+  c_args : [no_override_init_args, tu_flags],
+  gnu_symbol_visibility : 'hidden',
   link_args : [ld_args_bsymbolic, ld_args_gc_sections],
   install : true,
 )
 
+if with_symbols_check
+  test(
+    'tu symbols check',
+    symbols_check,
+    args : [
+      '--lib', libvulkan_freedreno,
+      '--symbols-file', vulkan_icd_symbols,
+      symbols_check_args,
+    ],
+    suite : ['freedreno'],
+  )
+endif
+
 freedreno_icd = custom_target(
   'freedreno_icd',
   input : 'tu_icd.py',
@@ -117,16 +162,3 @@ freedreno_icd = custom_target(
   install_dir : with_vulkan_icd_dir,
   install : true,
 )
-
-tu_dev_icd = custom_target(
-  'tu_dev_icd',
-  input : 'tu_icd.py',
-  output : 'dev_icd.json',
-  command : [
-    prog_python, '@INPUT@', '--lib-path', meson.current_build_dir(),
-    '--out', '@OUTPUT@'
-  ],
-  depend_files : files('tu_extensions.py'),
-  build_by_default : true,
-  install : false,
-)