diff -Nur evince-3.36.0-orig/libview/meson.build evince-3.36.0/libview/meson.build
--- evince-3.36.0-orig/libview/meson.build	2019-09-29 20:04:36.000000000 +0200
+++ evince-3.36.0/libview/meson.build	2020-05-28 17:50:37.649911000 +0200
@@ -64,12 +64,15 @@
   gstreamer_base_dep,
   gstreamer_dep,
   gstreamer_video_dep,
-  gtk_unix_print_dep,
   gthread_dep,
   libevdocument_dep,
   m_dep,
 ]
 
+if enable_gtk_unix_print
+  deps += gtk_unix_print_dep
+endif
+
 cflags = [
   '-DG_LOG_DOMAIN="EvinceView"',
   '-DEVINCEDATADIR="@0@"'.format(ev_pkgdatadir),
diff -Nur evince-3.36.0-orig/meson.build evince-3.36.0/meson.build
--- evince-3.36.0-orig/meson.build	2020-03-07 03:53:56.000000000 +0100
+++ evince-3.36.0/meson.build	2020-05-28 18:33:49.555574700 +0200
@@ -103,8 +103,7 @@
 
 if build_machine.system() == 'windows'
   common_flags += '-D_WIN32_WINNT=0x0500'
-
-  common_ldflags = cc.get_supported_link_arguments('-mwindows')
+  common_ldflags += '-lshlwapi'
 endif
 
 if ev_debug
@@ -124,7 +123,7 @@
 add_project_arguments(common_flags, language: 'c')
 
 lib_symbol_map = join_paths(meson.current_source_dir(), 'lib-symbol.map')
-lib_ldflags = cc.get_supported_link_arguments('-Wl,--version-script,' + lib_symbol_map)
+lib_ldflags = common_ldflags + cc.get_supported_link_arguments('-Wl,--version-script,' + lib_symbol_map)
 
 gnome = import('gnome')
 i18n = import('i18n')
diff -Nur evince-3.36.0-orig/shell/meson.build evince-3.36.0/shell/meson.build
--- evince-3.36.0-orig/shell/meson.build	2020-02-15 14:28:25.000000000 +0100
+++ evince-3.36.0/shell/meson.build	2020-05-28 18:33:56.647578700 +0200
@@ -82,15 +82,11 @@
 
 ldflags = common_ldflags
 
-if ev_platform == 'win32'
-  resource = 'evince-icon.o'
-
-  ldflag += custom_target(
-    resource,
-    input: 'evince-icon.rc',
-    output: resource,
-    command: [find_program('windres'), '@INPUT@', '-I', data_dir, '@OUTPUT@'],
-  )
+if build_machine.system() == 'windows'
+  sources += import('windows').compile_resources(
+    'evince-icon.rc',
+    include_directories : include_directories('../data'))
+  ldflags += cc.get_supported_link_arguments('-mwindows')
 else
   deps += adwaita_icon_theme_dep
 endif
