A postgres.exe built with meson, ninja, and MSVC lacks the version metadata
that postgres.exe gets under non-meson build systems.  Patch attached.
Author:     Noah Misch <n...@leadboat.com>
Commit:     Noah Misch <n...@leadboat.com>

    Add win32ver data to meson-built postgres.exe.
    
    This preserves two quirks of the older build systems.  First,
    postgres.exe is icon-free.  Second, the resources object is not an input
    to postgres.def.
    
    Reviewed by FIXME.
    
    Discussion: https://postgr.es/m/FIXME

diff --git a/meson.build b/meson.build
index 16b2e86..6d88836 100644
--- a/meson.build
+++ b/meson.build
@@ -2714,9 +2714,12 @@ if host_system == 'windows'
     rcgen_base_args += ['--depfile', '@DEPFILE@']
   endif
 
-  rcgen_bin_args = rcgen_base_args + [
+  rcgen_server_args = rcgen_base_args + [
     '--VFT_TYPE', 'VFT_APP',
-    '--FILEENDING', 'exe',
+    '--FILEENDING', 'exe'
+  ]
+
+  rcgen_bin_args = rcgen_server_args + [
     '--ICO', pg_ico
   ]
 
@@ -2731,6 +2734,12 @@ if host_system == 'windows'
     output: rcgen_outputs,
   )
 
+  rc_server_gen = generator(rcgen,
+    depfile: '@BASENAME@.d',
+    arguments: rcgen_server_args,
+    output: rcgen_outputs,
+  )
+
   rc_lib_gen = generator(rcgen,
     depfile: '@BASENAME@.d',
     arguments: rcgen_lib_args,
diff --git a/src/backend/meson.build b/src/backend/meson.build
index ccfc382..0e56b7f 100644
--- a/src/backend/meson.build
+++ b/src/backend/meson.build
@@ -5,6 +5,7 @@ backend_sources = []
 backend_link_with = [pgport_srv, common_srv]
 
 generated_backend_sources = []
+post_export_backend_sources = []
 
 subdir('access')
 subdir('archive')
@@ -133,8 +134,15 @@ if dtrace.found() and host_system != 'darwin'
   )
 endif
 
+if host_system == 'windows'
+  post_export_backend_sources += rc_server_gen.process(win32ver_rc, 
extra_args: [
+    '--NAME', 'postgres',
+    '--FILEDESC', 'PostgreSQL Server',])
+endif
+
 postgres = executable('postgres',
   backend_input,
+  sources: post_export_backend_sources,
   objects: backend_objs,
   link_args: backend_link_args,
   link_with: backend_link_with,

Reply via email to