From 362708d4d223994087e5f63513609186e72ea0e5 Mon Sep 17 00:00:00 2001 From: inikep Date: Tue, 13 Sep 2016 13:53:43 +0200 Subject: [PATCH] zstd.exe has FileVersion and ProductVersion --- .gitattributes | 2 +- programs/Makefile | 3 +- projects/VS2010/zstd/generate_res.bat | 3 + projects/VS2010/zstd/verrsrc.h | 172 ++++++++++++++++++++++++++ projects/VS2010/zstd/zstd.res | Bin 0 -> 948 bytes projects/VS2010/zstd/zstd.vcxproj | 5 +- projects/VS2010/zstdlib/zstdlib.rc | 102 +++++++-------- 7 files changed, 233 insertions(+), 54 deletions(-) create mode 100644 projects/VS2010/zstd/generate_res.bat create mode 100644 projects/VS2010/zstd/verrsrc.h create mode 100644 projects/VS2010/zstd/zstd.res diff --git a/.gitattributes b/.gitattributes index 38708019..6212bd40 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14,7 +14,7 @@ *.vcxproj* text eol=crlf *.vcproj* text eol=crlf *.suo binary -*.rc binary +*.rc text eol=crlf # Windows *.bat text eol=crlf diff --git a/programs/Makefile b/programs/Makefile index bfc7be37..ccd282c9 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -57,6 +57,7 @@ endif ifneq (,$(filter Windows%,$(OS))) EXT =.exe VOID = nul +RES_FILE = ..\projects\VS2010\zstd\zstd.res else EXT = VOID = /dev/null @@ -78,7 +79,7 @@ $(ZSTDDECOMP32_O): $(ZSTDDIR)/decompress/zstd_decompress.c zstd : $(ZSTDDECOMP_O) $(ZSTD_FILES) $(ZSTDLEGACY_FILES) $(ZDICT_FILES) \ zstdcli.c fileio.c bench.c datagen.c dibio.c - $(CC) $(FLAGS) -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) $^ -o $@$(EXT) + $(CC) $(FLAGS) -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) $^ $(RES_FILE) -o $@$(EXT) zstd32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) $(ZSTDLEGACY_FILES) $(ZDICT_FILES) \ zstdcli.c fileio.c bench.c datagen.c dibio.c diff --git a/projects/VS2010/zstd/generate_res.bat b/projects/VS2010/zstd/generate_res.bat new file mode 100644 index 00000000..4dfa075f --- /dev/null +++ b/projects/VS2010/zstd/generate_res.bat @@ -0,0 +1,3 @@ +REM http://stackoverflow.com/questions/708238/how-do-i-add-an-icon-to-a-mingw-gcc-compiled-executable +REM copy "c:\Program Files (x86)\Windows Kits\8.1\Include\um\verrsrc.h" . +windres -I ..\..\..\lib -O coff -i zstd.rc -o zstd.res diff --git a/projects/VS2010/zstd/verrsrc.h b/projects/VS2010/zstd/verrsrc.h new file mode 100644 index 00000000..37e48d30 --- /dev/null +++ b/projects/VS2010/zstd/verrsrc.h @@ -0,0 +1,172 @@ +#include + +/*****************************************************************************\ +* * +* verrsrc.h - Version Resource definitions * +* * +* Include file declaring version resources in rc files * +* * +* Copyright (c) Microsoft Corporation. All rights reserved. * +* * +\*****************************************************************************/ + +#pragma region Application Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +/* ----- Symbols ----- */ +#define VS_FILE_INFO RT_VERSION +#define VS_VERSION_INFO 1 +#define VS_USER_DEFINED 100 + +/* ----- VS_VERSION.dwFileFlags ----- */ +#ifndef _MAC +#define VS_FFI_SIGNATURE 0xFEEF04BDL +#else +#define VS_FFI_SIGNATURE 0xBD04EFFEL +#endif +#define VS_FFI_STRUCVERSION 0x00010000L +#define VS_FFI_FILEFLAGSMASK 0x0000003FL + +/* ----- VS_VERSION.dwFileFlags ----- */ +#define VS_FF_DEBUG 0x00000001L +#define VS_FF_PRERELEASE 0x00000002L +#define VS_FF_PATCHED 0x00000004L +#define VS_FF_PRIVATEBUILD 0x00000008L +#define VS_FF_INFOINFERRED 0x00000010L +#define VS_FF_SPECIALBUILD 0x00000020L + +/* ----- VS_VERSION.dwFileOS ----- */ +#define VOS_UNKNOWN 0x00000000L +#define VOS_DOS 0x00010000L +#define VOS_OS216 0x00020000L +#define VOS_OS232 0x00030000L +#define VOS_NT 0x00040000L +#define VOS_WINCE 0x00050000L + +#define VOS__BASE 0x00000000L +#define VOS__WINDOWS16 0x00000001L +#define VOS__PM16 0x00000002L +#define VOS__PM32 0x00000003L +#define VOS__WINDOWS32 0x00000004L + +#define VOS_DOS_WINDOWS16 0x00010001L +#define VOS_DOS_WINDOWS32 0x00010004L +#define VOS_OS216_PM16 0x00020002L +#define VOS_OS232_PM32 0x00030003L +#define VOS_NT_WINDOWS32 0x00040004L + +/* ----- VS_VERSION.dwFileType ----- */ +#define VFT_UNKNOWN 0x00000000L +#define VFT_APP 0x00000001L +#define VFT_DLL 0x00000002L +#define VFT_DRV 0x00000003L +#define VFT_FONT 0x00000004L +#define VFT_VXD 0x00000005L +#define VFT_STATIC_LIB 0x00000007L + +/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */ +#define VFT2_UNKNOWN 0x00000000L +#define VFT2_DRV_PRINTER 0x00000001L +#define VFT2_DRV_KEYBOARD 0x00000002L +#define VFT2_DRV_LANGUAGE 0x00000003L +#define VFT2_DRV_DISPLAY 0x00000004L +#define VFT2_DRV_MOUSE 0x00000005L +#define VFT2_DRV_NETWORK 0x00000006L +#define VFT2_DRV_SYSTEM 0x00000007L +#define VFT2_DRV_INSTALLABLE 0x00000008L +#define VFT2_DRV_SOUND 0x00000009L +#define VFT2_DRV_COMM 0x0000000AL +#define VFT2_DRV_INPUTMETHOD 0x0000000BL +#define VFT2_DRV_VERSIONED_PRINTER 0x0000000CL + +/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */ +#define VFT2_FONT_RASTER 0x00000001L +#define VFT2_FONT_VECTOR 0x00000002L +#define VFT2_FONT_TRUETYPE 0x00000003L + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ +#pragma endregion + +#pragma region Desktop Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +/* ----- VerFindFile() flags ----- */ +#define VFFF_ISSHAREDFILE 0x0001 + +#define VFF_CURNEDEST 0x0001 +#define VFF_FILEINUSE 0x0002 +#define VFF_BUFFTOOSMALL 0x0004 + +/* ----- VerInstallFile() flags ----- */ +#define VIFF_FORCEINSTALL 0x0001 +#define VIFF_DONTDELETEOLD 0x0002 + +#define VIF_TEMPFILE 0x00000001L +#define VIF_MISMATCH 0x00000002L +#define VIF_SRCOLD 0x00000004L + +#define VIF_DIFFLANG 0x00000008L +#define VIF_DIFFCODEPG 0x00000010L +#define VIF_DIFFTYPE 0x00000020L + +#define VIF_WRITEPROT 0x00000040L +#define VIF_FILEINUSE 0x00000080L +#define VIF_OUTOFSPACE 0x00000100L +#define VIF_ACCESSVIOLATION 0x00000200L +#define VIF_SHARINGVIOLATION 0x00000400L +#define VIF_CANNOTCREATE 0x00000800L +#define VIF_CANNOTDELETE 0x00001000L +#define VIF_CANNOTRENAME 0x00002000L +#define VIF_CANNOTDELETECUR 0x00004000L +#define VIF_OUTOFMEMORY 0x00008000L + +#define VIF_CANNOTREADSRC 0x00010000L +#define VIF_CANNOTREADDST 0x00020000L + +#define VIF_BUFFTOOSMALL 0x00040000L +#define VIF_CANNOTLOADLZ32 0x00080000L +#define VIF_CANNOTLOADCABINET 0x00100000L + +#ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + FILE_VER_GET_... flags are for use by + GetFileVersionInfoSizeEx + GetFileVersionInfoExW +*/ +#define FILE_VER_GET_LOCALISED 0x01 +#define FILE_VER_GET_NEUTRAL 0x02 +#define FILE_VER_GET_PREFETCHED 0x04 + +/* ----- Types and structures ----- */ + +typedef struct tagVS_FIXEDFILEINFO +{ + DWORD dwSignature; /* e.g. 0xfeef04bd */ + DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */ + DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */ + DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */ + DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */ + DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */ + DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */ + DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */ + DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */ + DWORD dwFileType; /* e.g. VFT_DRIVER */ + DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */ + DWORD dwFileDateMS; /* e.g. 0 */ + DWORD dwFileDateLS; /* e.g. 0 */ +} VS_FIXEDFILEINFO; + +#ifdef __cplusplus +} +#endif + +#endif /* !RC_INVOKED */ + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ +#pragma endregion + diff --git a/projects/VS2010/zstd/zstd.res b/projects/VS2010/zstd/zstd.res new file mode 100644 index 0000000000000000000000000000000000000000..d726146f26e124064a716953901d33472c74be13 GIT binary patch literal 948 zcmZ{j-%1-%5XQeXOCiz=FTKn~3kGaRG!zv!`P^CWhNo z^PlOZ1e#+rFI|^5(*nmgU$9q0=_`m6gB7t&Ri({ztV5kMf6)Qjj`p<6eusG*-Q;ih z|9;HI7?oqgPo`Vj zpTYdlNFDIMVbft3d-zkgC8{}Q;8AlurgWHn@72i@kz;1=4`1!Z4I@+E~yIE`j9&= z@t9?WSI#a19qSjvB++|(zOm~$+PX8MFV@{2EUf@6+pL!o_yaZRsv zQd)D4dqsS^L92VxTicCq<0Y txP?!^t2O@#tMX+@?|75a5vP_XgL?-S<$YAcKcW2-CY7l_F>s4{KLBi2dME$@ literal 0 HcmV?d00001 diff --git a/projects/VS2010/zstd/zstd.vcxproj b/projects/VS2010/zstd/zstd.vcxproj index 5922d925..0f4e06aa 100644 --- a/projects/VS2010/zstd/zstd.vcxproj +++ b/projects/VS2010/zstd/zstd.vcxproj @@ -69,6 +69,9 @@ + + + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C} Win32Proj @@ -217,4 +220,4 @@ - + \ No newline at end of file diff --git a/projects/VS2010/zstdlib/zstdlib.rc b/projects/VS2010/zstdlib/zstdlib.rc index 6c4dde48..de8ecbcf 100644 --- a/projects/VS2010/zstdlib/zstdlib.rc +++ b/projects/VS2010/zstdlib/zstdlib.rc @@ -1,51 +1,51 @@ -// Microsoft Visual C++ generated resource script. -// - -#include "zstd.h" /* ZSTD_VERSION_STRING */ -#define APSTUDIO_READONLY_SYMBOLS -#include "verrsrc.h" -#undef APSTUDIO_READONLY_SYMBOLS - - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE 9, 1 - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION ZSTD_LIB_VERSION - PRODUCTVERSION ZSTD_LIB_VERSION - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS_NT_WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "CompanyName", "Yann Collet" - VALUE "FileDescription", "Fast and efficient compression algorithm" - VALUE "FileVersion", ZSTD_VERSION_STRING - VALUE "InternalName", "zstdlib.dll" - VALUE "LegalCopyright", "Copyright (C) 2013-2015, Yann Collet" - VALUE "OriginalFilename", "zstdlib.dll" - VALUE "ProductName", "Zstandard" - VALUE "ProductVersion", ZSTD_VERSION_STRING - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1200 - END -END - -#endif +// Microsoft Visual C++ generated resource script. +// + +#include "zstd.h" /* ZSTD_VERSION_STRING */ +#define APSTUDIO_READONLY_SYMBOLS +#include "verrsrc.h" +#undef APSTUDIO_READONLY_SYMBOLS + + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + PRODUCTVERSION ZSTD_VERSION_MAJOR,ZSTD_VERSION_MINOR,ZSTD_VERSION_RELEASE,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Yann Collet" + VALUE "FileDescription", "Fast and efficient compression algorithm" + VALUE "FileVersion", ZSTD_VERSION_STRING + VALUE "InternalName", "zstdlib.dll" + VALUE "LegalCopyright", "Copyright (C) 2013-2016, Yann Collet" + VALUE "OriginalFilename", "zstdlib.dll" + VALUE "ProductName", "Zstandard" + VALUE "ProductVersion", ZSTD_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END + +#endif