From 833622c870fa65561f8224513374a679b4ffcc30 Mon Sep 17 00:00:00 2001 From: Christian Kenny Date: Fri, 27 Jan 2017 11:33:49 -0500 Subject: [PATCH] Check/Install DirectX redistributables on Win8.1 and older (so as long as they have admin privileges). Removed SSSE3 and AVX references from build instructions. Remove old build targets from instructions Don't install DXRedists on 8.1 and newer --- nsis/nsis_instructions.txt | 2 -- nsis/pcsx2_full_install.nsi | 69 ++++++++++--------------------------- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/nsis/nsis_instructions.txt b/nsis/nsis_instructions.txt index 31797ba66a..ee88295416 100644 --- a/nsis/nsis_instructions.txt +++ b/nsis/nsis_instructions.txt @@ -39,9 +39,7 @@ * Load the PCSX2 Suite solution and rebuild all in the following targets: * Release SSE2 - * Release SSSE3 (only needed if packaging plugins) * Release SSE4 (only needed if packaging plugins) - * Release AVX (only needed if packaging plugins) * Release AVX2 (only needed if packaging plugins) * Devel (optional) /* not enabled in the installer either, so need to do that as well */ diff --git a/nsis/pcsx2_full_install.nsi b/nsis/pcsx2_full_install.nsi index 15023193a5..ddef679b39 100644 --- a/nsis/pcsx2_full_install.nsi +++ b/nsis/pcsx2_full_install.nsi @@ -5,11 +5,6 @@ ; Copyright 2009-2017 PCSX2 Dev Team ; -!ifndef INC_CRT_2015 - ; Set to 0 to disable inclusion of Visual Studio 2013 SP1 CRT Redists - !define INC_CRT_2015 1 -!endif - ManifestDPIAware true ShowInstDetails nevershow ShowUninstDetails nevershow @@ -209,9 +204,7 @@ Section "!${APP_NAME} (required)" SEC_CORE !insertmacro UNINSTALL.LOG_OPEN_INSTALL File /nonfatal ..\bin\Plugins\gsdx32-sse2.dll - File /nonfatal ..\bin\Plugins\gsdx32-ssse3.dll File /nonfatal ..\bin\Plugins\gsdx32-sse4.dll - File /nonfatal ..\bin\Plugins\gsdx32-avx.dll File /nonfatal ..\bin\Plugins\gsdx32-avx2.dll File /nonfatal ..\bin\Plugins\spu2-x.dll File /nonfatal ..\bin\Plugins\cdvdGigaherz.dll @@ -236,57 +229,35 @@ Section "Additional Languages" SEC_LANGS !insertmacro UNINSTALL.LOG_CLOSE_INSTALL SectionEnd -SectionGroup "DirectX Packages (required for PCSX2)" SEC_DXPACKS -!if ${INC_CRT_2015} > 0 -Section "Microsoft Visual C++ 2015 Redist" SEC_CRT2015 +Section "" SEC_DXRedists +!include WinVer.nsh - ;SectionIn RO +${IfNot} ${AtLeastWin8.1} +Goto InstallRedist +${ElseIf} ${AtLeastWin8.1} + Goto SkipDx +${EndIf} - ; Detection made easy: Unlike previous redists, VC2015 now generates a platform - ; independent key for checking availability. - ; HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86 for x64 Windows - ; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86 for x86 Windows +InstallRedist: +ReadRegDword $R0 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" "Installed" + ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" "Installed" - ; Downloaded from: - ; https://www.microsoft.com/en-us/download/details.aspx?id=49984 - - ClearErrors - - ${If} ${RunningX64} - ReadRegDword $R0 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" "Installed" - ${Else} - ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" "Installed" - ${EndIf} - - IfErrors 0 +2 - DetailPrint "Visual C++ 2015 Redistributable registry key was not found; assumed to be uninstalled." - StrCmp $R0 "1" 0 +3 - DetailPrint "Visual C++ 2015 Redistributable is already installed; skipping!" - Goto done +${If} $R0 == "1" +Goto done +${Else} + Goto +2 +${EndIf} SetOutPath "$TEMP" File "vcredist_2015_Update_1_x86.exe" - DetailPrint "Running Visual C++ 2015 Redistributable Setup..." ExecWait '"$TEMP\vcredist_2015_Update_1_x86.exe" /qb' DetailPrint "Finished Visual C++ 2015 Redistributable Setup" - Delete "$TEMP\vcredist_2015_Update_1_x86.exe" done: -SectionEnd -!endif - -; ----------------------------------------------------------------------- -; This section needs to be last, so that in case it fails, the rest of the program will -; be installed cleanly. -; -; This section could be optional, but why not? It's pretty painless to double-check that -; all the libraries are up-to-date. -; -Section "DirectX Web Setup" SEC_DIRECTX - - ;SectionIn RO +;DirectX Web Setup + SetOutPath "$TEMP" File "dxwebsetup.exe" DetailPrint "Running DirectX Web Setup..." @@ -295,25 +266,21 @@ Section "DirectX Web Setup" SEC_DIRECTX Delete "$TEMP\dxwebsetup.exe" + SkipDX: SectionEnd -SectionGroupEnd !include "SectionUninstaller.nsh" LangString DESC_CORE ${LANG_ENGLISH} "Core components (binaries, plugins, documentation, etc)." - LangString DESC_STARTMENU ${LANG_ENGLISH} "Adds shortcuts for PCSX2 to the start menu (all users)." LangString DESC_DESKTOP ${LANG_ENGLISH} "Adds a shortcut for PCSX2 to the desktop (all users)." LangString DESC_LANGS ${LANG_ENGLISH} "Adds additional languages other than the system default to PCSX2." -LangString DESC_DXPACKS ${LANG_ENGLISH} "Installs the Visual C++ Redistributable and DirectX SDK (required for PCSX2)" - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC_CORE} $(DESC_CORE) !insertmacro MUI_DESCRIPTION_TEXT ${SEC_STARTMENU} $(DESC_STARTMENU) !insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOP} $(DESC_DESKTOP) !insertmacro MUI_DESCRIPTION_TEXT ${SEC_LANGS} $(DESC_LANGS) - !insertmacro MUI_DESCRIPTION_TEXT ${SEC_DXPACKS} $(DESC_DXPACKS) !insertmacro MUI_FUNCTION_DESCRIPTION_END