diff --git a/pressure-vessel/meson.build b/pressure-vessel/meson.build
index 3cf43bad9f03884dfcd4d1392d33df3dd45c9537..b492352c0e2a547d16129d471ab8b59cd73fc7d2 100644
--- a/pressure-vessel/meson.build
+++ b/pressure-vessel/meson.build
@@ -105,6 +105,10 @@ pressure_vessel_utils = static_library(
   include_directories : pv_include_dirs,
   install: false,
 )
+pressure_vessel_utils_dep = declare_dependency(
+  link_with : pressure_vessel_utils,
+  sources : launcher1[1],
+)
 
 launcher_codegen = static_library(
   'pressure-vessel-launcher-codegen',
@@ -116,6 +120,10 @@ launcher_codegen = static_library(
   include_directories : pv_include_dirs,
   install: false,
 )
+launcher_codegen_dep = declare_dependency(
+  link_with : launcher_codegen,
+  sources : launcher1[1],
+)
 
 executable(
   'pressure-vessel-adverb',
@@ -126,13 +134,11 @@ executable(
   ],
   c_args : pv_c_args,
   dependencies : [
+    pressure_vessel_utils_dep,
     threads,
     gio_unix,
     libglnx.get_variable('libglnx_dep'),
   ],
-  link_with : [
-    pressure_vessel_utils,
-  ],
   include_directories : pv_include_dirs,
   install : true,
   install_dir : pv_bindir,
@@ -147,13 +153,11 @@ executable(
   ],
   c_args : pv_c_args,
   dependencies : [
+    pressure_vessel_utils_dep,
     threads,
     gio_unix,
     libglnx.get_variable('libglnx_dep'),
   ],
-  link_with : [
-    pressure_vessel_utils,
-  ],
   include_directories : pv_include_dirs,
   install : true,
   install_dir : pv_bindir,
@@ -168,14 +172,12 @@ executable(
   ],
   c_args : pv_c_args,
   dependencies : [
+    launcher_codegen_dep,
+    pressure_vessel_utils_dep,
     threads,
     gio_unix,
     libglnx.get_variable('libglnx_dep'),
   ],
-  link_with : [
-    launcher_codegen,
-    pressure_vessel_utils,
-  ],
   include_directories : pv_include_dirs,
   install : true,
   install_dir : pv_bindir,
@@ -201,14 +203,12 @@ executable(
   ] + enums,
   c_args : pv_c_args,
   dependencies : [
+    pressure_vessel_utils_dep,
     libsteamrt_static_dep,
     gio_unix,
     xau,
     libglnx.get_variable('libglnx_dep'),
   ],
-  link_with : [
-    pressure_vessel_utils,
-  ],
   include_directories : pv_include_dirs,
   install : true,
   install_dir : pv_bindir,