From cafc094788fcdd65e5fb936e5451a08b780c8ecd Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Wed, 21 Dec 2022 15:44:36 -0600 Subject: [PATCH] Add version information for Windows file/Properties/Details https://github.com/Hamlib/Hamlib/issues/1168 --- configure.ac | 4 ++++ src/Makefile.am | 24 ++++++++++++++++++++---- src/version_dll.rc | 29 +++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100755 src/version_dll.rc diff --git a/configure.ac b/configure.ac index a8527b8e3..265279c98 100644 --- a/configure.ac +++ b/configure.ac @@ -15,6 +15,8 @@ dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! AC_INIT([Hamlib],[4.6~git],[hamlib-developer@lists.sourceforge.net],[hamlib],[http://www.hamlib.org]) +#AC_INIT([PRODUCT_NAME], [Hamlib]) +#AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) AC_CONFIG_SRCDIR([include/hamlib/rig.h]) AC_CONFIG_MACRO_DIR([macros]) @@ -260,6 +262,7 @@ LT_PREREQ([2.2.6b]) dnl N.B. LT_INIT([win32-dll]) does not work for older libtool dnl so require new enough version above. LT_INIT([win32-dll]) +LT_LANG([Windows Resource]) ## -------------------------- ## @@ -282,6 +285,7 @@ AS_CASE(["$host_os"], [mingw* | pw32* | cygwin*], [ WINLDFLAGS="-Wl,--output-def,libhamlib.def -Wl,--add-stdcall-alias" + VERSIONDLL="version_dll.rc" AC_SUBST([WINLDFLAGS]) # Enable ld's "auto import" for executables diff --git a/src/Makefile.am b/src/Makefile.am index fe4431de3..25e4f7cd3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -11,16 +11,16 @@ RIGSRC = hamlibdatetime.h rig.c serial.c serial.h misc.c misc.h register.c regis network.c network.h cm108.c cm108.h gpio.c gpio.h idx_builtin.h token.h \ par_nt.h microham.c microham.h amplifier.c amp_reg.c amp_conf.c \ amp_conf.h amp_settings.c extamp.c sleep.c sleep.h sprintflst.c \ - sprintflst.h cache.c cache.h snapshot_data.c snapshot_data.h + sprintflst.h cache.c cache.h snapshot_data.c snapshot_data.h $(VERSIONDLL) lib_LTLIBRARIES = libhamlib.la -libhamlib_la_SOURCES = $(RIGSRC) +libhamlib_la_SOURCES = $(RIGSRC) $(VERSIONDLL) libhamlib_la_LDFLAGS = $(WINLDFLAGS) $(OSXLDFLAGS) -no-undefined -version-info $(ABI_VERSION):$(ABI_REVISION):$(ABI_AGE) libhamlib_la_LIBADD = $(top_builddir)/lib/libmisc.la $(top_builddir)/security/libsecurity.la \ $(BACKENDEPS) $(RIG_BACKENDEPS) $(ROT_BACKENDEPS) $(AMP_BACKENDEPS) $(NET_LIBS) $(MATH_LIBS) $(LIBUSB_LIBS) $(INDI_LIBS) -libhamlib_la_DEPENDENCIES = $(top_builddir)/lib/libmisc.la $(top_builddir)/security/libsecurity.la $(BACKENDEPS) $(RIG_BACKENDEPS) $(ROT_BACKENDEPS) $(AMP_BACKENDEPS) +libhamlib_la_DEPENDENCIES = $(top_builddir)/lib/libmisc.la $(top_builddir)/security/libsecurity.la $(BACKENDEPS) $(RIG_BACKENDEPS) $(ROT_BACKENDEPS) $(AMP_BACKENDEPS) EXTRA_DIST = Android.mk hamlibdatetime.h.in @@ -32,13 +32,29 @@ EXTRA_DIST = Android.mk hamlibdatetime.h.in hamlibdatetime.h: FORCE @if test -x $(top_srcdir)/.git ; then \ echo "/* This date time is from the last non-merge commit to Hamlib. */" > $(builddir)/$(@F).tmp ;\ - echo "#define HAMLIBDATETIME "\"$$(TZ=UTC git --git-dir=$(top_srcdir)/.git log --no-merges --date='format-local:%a %b %d %H:%M:%S %Y %z SHA=' --format='%cd' -n 1)$$(git --git-dir=$(top_srcdir)/.git log --no-merges | grep commit | head -n 1 | cut -c8-13)\" >> $(builddir)/$(@F).tmp ;\ + echo "#define HAMLIBDATETIME "\"$$(TZ=UTC git --git-dir=$(top_srcdir)/.git log --no-merges --date='format-local:%b %d %H:%M:%SZ %Y SHA=' --format='%cd' -n 1)$$(git --git-dir=$(top_srcdir)/.git log --no-merges | grep commit | head -n 1 | cut -c8-13)\" >> $(builddir)/$(@F).tmp ;\ diff -qN $(builddir)/$(@F).tmp $(builddir)/$(@F) ; test $$? -eq 0 || { echo "Generating SCS header \"$(builddir)/$(@F)\"" ; mv -f $(builddir)/$(@F).tmp $(builddir)/$(@F) ; } ;\ rm -f $(builddir)/$(@F).tmp ;\ else \ test -f $(srcdir)/$(@F) || cp $(srcdir)/$(@F).in $(srcdir)/$(@F) ;\ fi +RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) + +LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE) + +.rc.lo: + $(LTRCCOMPILE) -i "$<" -o "$@" + +.rc.o: + $(RCCOMPILE) -i "$<" -o "$@" + +.mc.rc: + $(WINDMC) "$<" + +#version.la: version.rc +# windres $(srcdir)/version.rc -o $(builddir)/version.o + FORCE: # If we are making a distribution out-of-source and we have generated diff --git a/src/version_dll.rc b/src/version_dll.rc new file mode 100755 index 000000000..70e758add --- /dev/null +++ b/src/version_dll.rc @@ -0,0 +1,29 @@ +#include +#include + +#define VERSIONINFO_1 1 + +VERSIONINFO_1 VERSIONINFO +{ + BLOCK "StringFileInfo" + { + BLOCK "040904E4" + { + VALUE "CompanyName", "Hamlib Team\000" + VALUE "FileDescription", "Hamlib DLL\000" + VALUE "ProductName", "Hamlib\000" + VALUE "FileVersion", 4,6,0,0 + VALUE "ProductVersion", HAMLIBDATETIME + VALUE "InternalName", "sha256" + VALUE "LegalCopyright", "Copyright Hamlib Team 2022\000" + VALUE "OriginalFilename", "libhamlib-4.dll\000" + } + + } + + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x409, 1252 + } + +}