diff --git a/meson.build b/meson.build
index 9a98f0c86a0..d302c67a861 100644
--- a/meson.build
+++ b/meson.build
@@ -1523,11 +1523,18 @@ endif
 
 zstdopt = get_option('zstd')
 if not zstdopt.disabled()
-  zstd = dependency('libzstd', required: false, version: '>=1.4.0')
-  # Unfortunately the dependency is named differently with cmake
-  if not zstd.found() # combine with above once meson 0.60.0 is required
-    zstd = dependency('zstd', required: zstdopt, version: '>=1.4.0',
-                      method: 'cmake', modules: ['zstd::libzstd_shared'])
+  if host_system != 'windows'
+    zstd = dependency('libzstd', required: false, version: '>=1.4.0')
+    # Unfortunately the dependency is named differently with cmake
+    if not zstd.found() # combine with above once meson 0.60.0 is required
+      zstd = dependency('zstd', required: zstdopt, version: '>=1.4.0',
+                        method: 'cmake', modules: ['zstd::libzstd_shared'])
+    endif
+  else
+    zstd = dependency('libzstd', required: false, version: '>=1.4.0')
+    if not zstd.found()
+      zstd = cc.find_library('libzstd', required: zstdopt, dirs: postgres_lib_d)
+    endif
   endif
 
   if zstd.found()
