From b511ae8ad791e3f61d7d03d942b863710435929d Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Wed, 4 Mar 2026 15:59:10 +0100 Subject: [PATCH] Add Windows resource --- Makefile.am | 12 ++++++++++++ cmdline/resource.manifest | 40 +++++++++++++++++++++++++++++++++++++++ cmdline/resource.rc | 35 ++++++++++++++++++++++++++++++++++ configure.ac | 11 +++++++++++ 4 files changed, 98 insertions(+) create mode 100644 cmdline/resource.manifest create mode 100644 cmdline/resource.rc diff --git a/Makefile.am b/Makefile.am index e380eabf..06c66f33 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,6 +9,16 @@ mktest_LDFLAGS = -framework CoreFoundation -framework DiskArbitration mkstream_LDFLAGS = -framework CoreFoundation -framework DiskArbitration endif +# Windows +if HOST_WINDOWS +snapraid_LDADD = resource_res.o + +resource_res.o: cmdline/resource.rc cmdline/resource.manifest + $(WINDRES) --include-dir=. --include-dir=$(srcdir) $< -o $@ + +CLEANFILES = resource_res.o +endif + snapraid_SOURCES = \ raid/raid.c \ raid/check.c \ @@ -151,6 +161,8 @@ EXTRA_DIST = \ test/test-par6-rename.conf \ test/test-par6-thermal.conf \ snapraid.conf.example \ + cmdline/resource.rc \ + cmdline/resource.manifest \ configure.windows-x86 configure.windows-x64 snapraid.conf.example.windows \ acinclude.m4 \ tommyds/LICENSE \ diff --git a/cmdline/resource.manifest b/cmdline/resource.manifest new file mode 100644 index 00000000..2b9a500c --- /dev/null +++ b/cmdline/resource.manifest @@ -0,0 +1,40 @@ + + + + + SnapRAID Windows Daemon Service + + + + + + + + + + + + + + + + + + + + + true + + + UTF-8 + + + SegmentHeap + + + diff --git a/cmdline/resource.rc b/cmdline/resource.rc new file mode 100644 index 00000000..46e7c6d0 --- /dev/null +++ b/cmdline/resource.rc @@ -0,0 +1,35 @@ +#include + +#include "../config.h" + +1 RT_MANIFEST "resource.manifest" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0x0L + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + // 0409 = US English; 04b0 = Unicode (UTF-16) + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "Andrea Mazzoleni" + VALUE "FileDescription", "SnapRAID CLI" + VALUE "FileVersion", PACKAGE_VERSION + VALUE "InternalName", "snapraid" + VALUE "LegalCopyright", "Copyright (C) 2026 Andrea Mazzoleni" + VALUE "OriginalFilename", "snapraid.exe" + VALUE "ProductName", "SnapRAID" + VALUE "ProductVersion", PACKAGE_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/configure.ac b/configure.ac index 07ea5c40..274b9712 100644 --- a/configure.ac +++ b/configure.ac @@ -19,6 +19,17 @@ AC_CHECK_PROG([SDE],[sde64],[sde64],[]) AC_CHECK_PROG([ADVD2],[advd2],[advd2],[]) AM_CONDITIONAL(HAVE_ADVD2, [test x"$ADVD2" != x]) +# Check if we are targeting Windows +is_windows=no +AS_CASE([$host_os], [mingw*|msys*|cygwin*], [is_windows=yes]) +AM_CONDITIONAL([HOST_WINDOWS], [test "x$is_windows" = "xyes"]) + +# Check for Windows-specific tools only if on Windows +if test "x$is_windows" = "xyes"; then + AC_CHECK_TOOL([WINDMC], [windmc]) + AC_CHECK_TOOL([WINDRES], [windres]) +fi + dnl Options to improve stacktrace (some disabled as no crash reported by years) AC_CHECK_CC_OPT([-fno-omit-frame-pointer], CFLAGS="$CFLAGS -fno-omit-frame-pointer", []) # AC_CHECK_CC_OPT([-fno-inline-functions-called-once], CFLAGS="$CFLAGS -fno-inline-functions-called-once", [])