mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
installer option to deploy libportaudio w/o WASAPI
to work-around issues on Windows 10. http://tracker.ardour.org/view.php?id=6507
This commit is contained in:
parent
39240c9d37
commit
88229c4bef
1 changed files with 74 additions and 44 deletions
|
|
@ -352,44 +352,6 @@ cat >> $NSISFILE << EOF
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
|
|
||||||
Function .onInit
|
|
||||||
|
|
||||||
ReadRegStr \$R0 HKLM \
|
|
||||||
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" \
|
|
||||||
"UninstallString"
|
|
||||||
StrCmp \$R0 "" done
|
|
||||||
|
|
||||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
|
||||||
"${PROGRAM_NAME} is already installed. Click 'OK' to remove the previous version or 'Cancel' to cancel this upgrade." \
|
|
||||||
IDOK uninst
|
|
||||||
Abort
|
|
||||||
|
|
||||||
uninst:
|
|
||||||
ClearErrors
|
|
||||||
ExecWait '\$R0 _?=\$INSTDIR'
|
|
||||||
IfErrors uninstall_error
|
|
||||||
|
|
||||||
ReadRegStr \$R1 HKLM \
|
|
||||||
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" \
|
|
||||||
"UninstallString"
|
|
||||||
StrCmp \$R1 "" 0 done
|
|
||||||
|
|
||||||
Delete "\$INSTDIR\\uninstall.exe"
|
|
||||||
RMDir "\$INSTDIR"
|
|
||||||
goto done
|
|
||||||
|
|
||||||
uninstall_error:
|
|
||||||
|
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
|
||||||
"Uninstaller did not complete successfully. Continue at your own risk..." \
|
|
||||||
IDOK done
|
|
||||||
|
|
||||||
done:
|
|
||||||
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Section "${PROGRAM_NAME}${PROGRAM_VERSION} (required)" SecMainProg
|
Section "${PROGRAM_NAME}${PROGRAM_VERSION} (required)" SecMainProg
|
||||||
SectionIn RO
|
SectionIn RO
|
||||||
SetOutPath \$INSTDIR
|
SetOutPath \$INSTDIR
|
||||||
|
|
@ -405,14 +367,11 @@ Section "${PROGRAM_NAME}${PROGRAM_VERSION} (required)" SecMainProg
|
||||||
WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" "NoRepair" 1
|
WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" "NoRepair" 1
|
||||||
WriteUninstaller "\$INSTDIR\uninstall.exe"
|
WriteUninstaller "\$INSTDIR\uninstall.exe"
|
||||||
CreateShortCut "\$INSTDIR\\${PROGRAM_NAME}${PROGRAM_VERSION}.lnk" "\$INSTDIR\\bin\\${PRODUCT_EXE}" "" "\$INSTDIR\\bin\\${PRODUCT_EXE}" 0
|
CreateShortCut "\$INSTDIR\\${PROGRAM_NAME}${PROGRAM_VERSION}.lnk" "\$INSTDIR\\bin\\${PRODUCT_EXE}" "" "\$INSTDIR\\bin\\${PRODUCT_EXE}" 0
|
||||||
\${If} \${AtMostWinXP}
|
|
||||||
Delete "\$INSTDIR\\bin\\libportaudio-2.dll"
|
|
||||||
Rename "\$INSTDIR\\bin\\libportaudio-2.xp" "\$INSTDIR\\bin\\libportaudio-2.dll"
|
|
||||||
\${Else}
|
|
||||||
Delete "\$INSTDIR\\bin\\libportaudio-2.xp"
|
|
||||||
\${EndIf}
|
|
||||||
\${registerExtension} "\$INSTDIR\\bin\\${STATEFILE_SUFFIX}" ".${PRODUCT_NAME}" "${PROGRAM_NAME} Session"
|
\${registerExtension} "\$INSTDIR\\bin\\${STATEFILE_SUFFIX}" ".${PRODUCT_NAME}" "${PROGRAM_NAME} Session"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
|
Section "WASAPI sound driver" SecWASAPI
|
||||||
|
SectionEnd
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if test -z "$NOVIDEOTOOLS"; then
|
if test -z "$NOVIDEOTOOLS"; then
|
||||||
|
|
@ -451,6 +410,7 @@ cat >> $NSISFILE << EOF
|
||||||
CreateShortCut "\$SMPROGRAMS\\${PRODUCT_ID}${SFX}\\Uninstall.lnk" "\$INSTDIR\\uninstall.exe" "" "\$INSTDIR\\uninstall.exe" 0
|
CreateShortCut "\$SMPROGRAMS\\${PRODUCT_ID}${SFX}\\Uninstall.lnk" "\$INSTDIR\\uninstall.exe" "" "\$INSTDIR\\uninstall.exe" 0
|
||||||
SectionEnd
|
SectionEnd
|
||||||
LangString DESC_SecMainProg \${LANG_ENGLISH} "${PROGRAM_NAME} ${ARDOURVERSION}\$\\r\$\\n${VERSIONINFO}\$\\r\$\\n${ARDOURDATE}"
|
LangString DESC_SecMainProg \${LANG_ENGLISH} "${PROGRAM_NAME} ${ARDOURVERSION}\$\\r\$\\n${VERSIONINFO}\$\\r\$\\n${ARDOURDATE}"
|
||||||
|
LangString DESC_SecWASAPI \${LANG_ENGLISH} "WASAPI Audio Driver\$\\r\$\\nOnly works on Vista or later. Windows 10 Users may currently also experience issues if this is installed."
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if test -z "$NOVIDEOTOOLS"; then
|
if test -z "$NOVIDEOTOOLS"; then
|
||||||
|
|
@ -463,6 +423,7 @@ cat >> $NSISFILE << EOF
|
||||||
LangString DESC_SecMenu \${LANG_ENGLISH} "Create Start-Menu Shortcuts (recommended)."
|
LangString DESC_SecMenu \${LANG_ENGLISH} "Create Start-Menu Shortcuts (recommended)."
|
||||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT \${SecMainProg} \$(DESC_SecMainProg)
|
!insertmacro MUI_DESCRIPTION_TEXT \${SecMainProg} \$(DESC_SecMainProg)
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT \${SecWASAPI} \$(DESC_SecWASAPI)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if test -z "$NOVIDEOTOOLS"; then
|
if test -z "$NOVIDEOTOOLS"; then
|
||||||
|
|
@ -492,6 +453,75 @@ Section "Uninstall"
|
||||||
RMDir "\$SMPROGRAMS\\${PRODUCT_ID}${SFX}"
|
RMDir "\$SMPROGRAMS\\${PRODUCT_ID}${SFX}"
|
||||||
\${unregisterExtension} ".${STATEFILE_SUFFIX}" "${PROGRAM_NAME} Session"
|
\${unregisterExtension} ".${STATEFILE_SUFFIX}" "${PROGRAM_NAME} Session"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
Function .onInit
|
||||||
|
|
||||||
|
ReadRegStr \$R0 HKLM \
|
||||||
|
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" \
|
||||||
|
"UninstallString"
|
||||||
|
StrCmp \$R0 "" done
|
||||||
|
|
||||||
|
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||||
|
"${PROGRAM_NAME} is already installed. Click 'OK' to remove the previous version or 'Cancel' to cancel this upgrade." \
|
||||||
|
IDOK uninst
|
||||||
|
Abort
|
||||||
|
|
||||||
|
uninst:
|
||||||
|
ClearErrors
|
||||||
|
ExecWait '\$R0 _?=\$INSTDIR'
|
||||||
|
IfErrors uninstall_error
|
||||||
|
|
||||||
|
ReadRegStr \$R1 HKLM \
|
||||||
|
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${PRODUCT_ID}-${WARCH}" \
|
||||||
|
"UninstallString"
|
||||||
|
StrCmp \$R1 "" 0 done
|
||||||
|
|
||||||
|
Delete "\$INSTDIR\\uninstall.exe"
|
||||||
|
RMDir "\$INSTDIR"
|
||||||
|
goto done
|
||||||
|
|
||||||
|
uninstall_error:
|
||||||
|
|
||||||
|
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
||||||
|
"Uninstaller did not complete successfully. Continue at your own risk..." \
|
||||||
|
IDOK done
|
||||||
|
|
||||||
|
done:
|
||||||
|
|
||||||
|
\${If} \${AtMostWinXP}
|
||||||
|
SectionSetFlags \${SecWASAPI} \${SF_RO}
|
||||||
|
\${Else}
|
||||||
|
SectionSetFlags \${SecWASAPI} \${SF_SELECTED}
|
||||||
|
\${EndIf}
|
||||||
|
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function .onInstSuccess
|
||||||
|
|
||||||
|
\${If} \${AtMostWinXP}
|
||||||
|
goto pa_no_wasapi
|
||||||
|
\${EndIf}
|
||||||
|
|
||||||
|
SectionGetFlags \${SecWASAPI} \$R0
|
||||||
|
|
||||||
|
IntOp \$R0 \$R0 & \${SF_SELECTED}
|
||||||
|
IntCmp \$R0 \${SF_SELECTED} pa_with_wasapi pa_no_wasapi
|
||||||
|
|
||||||
|
pa_with_wasapi:
|
||||||
|
; VISTA .. 9, libportaudio with WASAPI is good.
|
||||||
|
Delete "\$INSTDIR\\bin\\libportaudio-2.xp"
|
||||||
|
goto endportaudio
|
||||||
|
|
||||||
|
; Windows XP lacks support for WASAPI, Windows10 on some system has issues
|
||||||
|
; http://tracker.ardour.org/view.php?id=6507
|
||||||
|
pa_no_wasapi:
|
||||||
|
Delete "\$INSTDIR\\bin\\libportaudio-2.dll"
|
||||||
|
Rename "\$INSTDIR\\bin\\libportaudio-2.xp" "\$INSTDIR\\bin\\libportaudio-2.dll"
|
||||||
|
|
||||||
|
endportaudio:
|
||||||
|
|
||||||
|
FunctionEnd
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
rm -f ${OUTFILE}
|
rm -f ${OUTFILE}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue