GraphicsMagick: Fix graphics magick installer for Windows.
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.39144.1672855239.1459.graphicsmagick-commit@lists.sourceforge.net> |
changeset 6f34369374cc in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=6f34369374cc summary: Fix graphics magick installer for Windows. diffstat: ChangeLog | 8 + VisualMagick/installer/inc/body.isx | 88 +++++++++++++++ VisualMagick/installer/inc/files-dlls.isx | 10 +- VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe | Bin VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe | Bin 5 files changed, 102 insertions(+), 4 deletions(-) diffs (154 lines): diff -r 8a2f008e12a9 -r 6f34369374cc ChangeLog --- a/ChangeLog Wed Jan 04 06:24:22 2023 +0100 +++ b/ChangeLog Wed Jan 04 18:56:38 2023 +0100 @@ -1,3 +1,11 @@ +2023-01-04 Fojtik Jaroslav <[email protected]> + + * VisualMagick/installer/inc/body.isx + * VisualMagick/installer/inc/files-dlls.isx + + VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe + + VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe + Fix graphics magick installer for Windows. + 2023-01-04 Fojtik Jaroslav <[email protected]> * VisualMagick/tests/runtest.bat Added new tests for PGX (jp2), MAT, diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/inc/body.isx --- a/VisualMagick/installer/inc/body.isx Wed Jan 04 06:24:22 2023 +0100 +++ b/VisualMagick/installer/inc/body.isx Wed Jan 04 18:56:38 2023 +0100 @@ -81,6 +81,15 @@ #include "icons-associate.isx" [Run] + +; conditional installation Check for Visual Studio Redistributable +#ifdef WIN64 + Filename: "{tmp}\vcredist_x64.exe"; Check: VCRedistNeedsInstall +#else + Filename: "{tmp}\vcredist_x86.exe"; Check: VCRedistNeedsInstall +#endif + + #include "run-pathtool.isx" #ifdef MagickDynamicPackage @@ -102,3 +111,82 @@ #ifdef MSVCProprietary #include "uninstallrun-unregister-com.isx" #endif + + +[Code] + +#IFDEF UNICODE + #DEFINE AW "W" +#ELSE + #DEFINE AW "A" +#ENDIF +type + INSTALLSTATE = Longint; +const + INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function. + INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed. + INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed. + INSTALLSTATE_ABSENT = 2; // The product is installed for a different user. + INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user. + + // Microsoft Visual C++ Redistributable Package is installed at "c:\WINDOWS\WinSxS\" + VC_2005_REDIST_X86 = '{A49F249F-0C91-497F-86DF-B2585E8E76B7}'; + VC_2005_REDIST_X64 = '{6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}'; + VC_2005_REDIST_IA64 = '{03ED71EA-F531-4927-AABD-1C31BCE8E187}'; + VC_2005_SP1_REDIST_X86 = '{7299052B-02A4-4627-81F2-1818DA5D550D}'; + VC_2005_SP1_REDIST_X64 = '{071C9B48-7C32-4621-A0AC-3F809523288F}'; + VC_2005_SP1_REDIST_IA64 = '{0F8FB34E-675E-42ED-850B-29D98C2ECE08}'; + VC_2005_SP1_ATL_SEC_UPD_REDIST_X86 = '{837B34E3-7C30-493C-8F6A-2B0F04E2912C}'; // Microsoft Visual C++ 2005 Redistributable, v 8.0.59193 + VC_2005_SP1_ATL_SEC_UPD_REDIST_X64 = '{6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}'; + VC_2005_SP1_ATL_SEC_UPD_REDIST_IA64 = '{85025851-A784-46D8-950D-05CB3CA43A13}'; + + VC_2008_REDIST_X86 = '{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}'; + VC_2008_REDIST_X64 = '{350AA351-21FA-3270-8B7A-835434E766AD}'; + VC_2008_REDIST_IA64 = '{2B547B43-DB50-3139-9EBE-37D419E0F5FA}'; + VC_2008_SP1_REDIST_X86_ = '{3C3D696B-0DB7-3C6D-A356-3DB8CE541918}'; // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729 + VC_2008_SP1_REDIST_X86 = '{9A25302D-30C0-39D9-BD6F-21E6EC160475}'; // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17 + VC_2008_SP1_REDIST_X64 = '{8220EEFE-38CD-377E-8595-13398D740ACE}'; + VC_2008_SP1_REDIST_IA64 = '{5827ECE1-AEB0-328E-B813-6FC68622C1F9}'; + VC_2008_SP1_ATL_SEC_UPD_REDIST_X86 = '{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}'; + VC_2008_SP1_ATL_SEC_UPD_REDIST_X64 = '{4B6C7001-C7D6-3710-913E-5BC23FCE91E6}'; + VC_2008_SP1_ATL_SEC_UPD_REDIST_IA64 = '{977AD349-C2A8-39DD-9273-285C08987C7B}'; + VC_2008_SP1_MFC_SEC_UPD_REDIST_X86 = '{9BE518E6-ECC6-35A9-88E4-87755C07200F}'; // Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161 + VC_2008_SP1_MFC_SEC_UPD_REDIST_X64 = '{5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}'; + VC_2008_SP1_MFC_SEC_UPD_REDIST_IA64 = '{515643D1-4E9E-342F-A75A-D1F16448DC04}'; + + VC_2010_REDIST_X86 = '{196BB40D-1578-3D01-B289-BEFC77A11A1E}'; + VC_2010_REDIST_X64 = '{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}'; + VC_2010_REDIST_IA64 = '{C1A35166-4301-38E9-BA67-02823AD72A1B}'; + VC_2010_SP1_REDIST_X86 = '{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}'; + VC_2010_SP1_REDIST_X64 = '{1D8E6291-B0D5-35EC-8441-6616F567A0F7}'; + VC_2010_SP1_REDIST_IA64 = '{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}'; + +function MsiQueryProductState(szProduct: string): INSTALLSTATE; + external 'MsiQueryProductState{#AW}@msi.dll stdcall'; + +function VCVersionInstalled(const ProductID: string): Boolean; +begin + Result := MsiQueryProductState(ProductID) = INSTALLSTATE_DEFAULT; +end; + +function VCRedistNeedsInstall: Boolean; +var + r1, r2, r3: Boolean; +begin + // here the Result must be True when you need to install your VCRedist + // or False when you don't need to, so now it's upon you how you build + // this statement, the following won't install your VC redist only when + // the Visual C++ 2010 Redist (x86) and Visual C++ 2010 SP1 Redist(x86) + // are installed for the current user +#ifdef WIN64 + r1 := VCVersionInstalled(VC_2008_REDIST_X64); + r2 := VCVersionInstalled(VC_2008_SP1_REDIST_X64); + r3 := VCVersionInstalled(VC_2008_SP1_MFC_SEC_UPD_REDIST_X64); +#else + r1 := VCVersionInstalled(VC_2008_REDIST_X86); + r2 := VCVersionInstalled(VC_2008_SP1_REDIST_X86_); + r3 := VCVersionInstalled(VC_2008_SP1_MFC_SEC_UPD_REDIST_X86); +#endif + Result := not ((r1 and r2) or r3); +end; + diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/inc/files-dlls.isx --- a/VisualMagick/installer/inc/files-dlls.isx Wed Jan 04 06:24:22 2023 +0100 +++ b/VisualMagick/installer/inc/files-dlls.isx Wed Jan 04 18:56:38 2023 +0100 @@ -12,23 +12,25 @@ #ifdef WIN64 #define public CPUARCH "amd64" + Source: "redist\VC2008SP1\vcredist_x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: VCRedistNeedsInstall #else #define public CPUARCH "x86" + Source: "redist\VC2008SP1\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; Check: VCRedistNeedsInstall #endif ; ; MSVC Runtime DLLs and manifests ; ; C runtime -Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcr90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion +;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcr90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion ; C++ standard runtime ; Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\msvcp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion -Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion +;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion ; OpenMP runtime -Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\vcomp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion -Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\Microsoft.VC90.OpenMP.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion +;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\vcomp90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion +;Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.OPENMP\Microsoft.VC90.OpenMP.manifest; DestDir: {#MagickLibDirectory}; Flags: ignoreversion ; MFC C++ runtime ; Source: {#MSVCRedist}\{#CPUARCH}\Microsoft.VC90.MFC\mfc90.dll; DestDir: {#MagickLibDirectory}; Flags: ignoreversion diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe Binary file VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe has changed diff -r 8a2f008e12a9 -r 6f34369374cc VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe Binary file VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe has changed