],
   c_args : [c_vis_args, c_sse2_args],
   cpp_args : [cpp_vis_args, c_sse2_args],
-  dependencies : [dep_libdrm, dep_valgrind],
+  dependencies : [dep_libdrm, dep_valgrind, idep_genxml],
   link_with : [
     iris_gen_libs, libintel_common, libintel_compiler, libintel_dev, libisl,
     libblorp
 
   files_libblorp,
   include_directories : [inc_common, inc_intel],
   c_args : [c_vis_args, no_override_init_args],
-  dependencies : idep_nir_headers,
+  dependencies : [idep_nir_headers, idep_genxml],
 )
 
   include_directories : [inc_common, inc_intel],
   c_args : [c_vis_args, no_override_init_args],
   link_with : [libisl],
-  dependencies : [dep_expat, dep_libdrm, dep_thread],
+  dependencies : [dep_expat, dep_libdrm, dep_thread, idep_genxml],
 )
 
     capture : true,
   )
 endforeach
+
+idep_genxml = declare_dependency(sources : [gen_xml_pack, genX_bits_h, genX_xml_h])
 
 c_sse2_args = ['-msse2', '-mstackrealign']
 inc_intel = include_directories('.')
 
+subdir('genxml')
 subdir('blorp')
 subdir('dev')
-subdir('genxml')
 subdir('isl')
 subdir('common')
 subdir('compiler')
 
     libvulkan_util, libvulkan_wsi, libmesa_util,
   ],
   dependencies : [
-    dep_thread, dep_dl, dep_m, anv_deps, idep_nir,
+    dep_thread, dep_dl, dep_m, anv_deps, idep_nir, idep_genxml,
   ],
   c_args : anv_flags,
   link_args : ['-Wl,--build-id=sha1', ld_args_bsymbolic, ld_args_gc_sections],
 
     i965_gen_libs, libintel_common, libintel_dev, libisl, libintel_compiler,
     libblorp
   ],
-  dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers],
+  dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml],
 )
 
 dri_drivers += libi965