diff --git a/build.xml b/build.xml index ac7d46c87..4d1cf2536 100644 --- a/build.xml +++ b/build.xml @@ -2,8 +2,10 @@ Builds project FFDec - - + + + + @@ -21,11 +23,12 @@ + - + - + @@ -53,8 +56,7 @@ - - + diff --git a/build_common.xml b/build_common.xml index 73a27a564..af08bab50 100644 --- a/build_common.xml +++ b/build_common.xml @@ -115,12 +115,23 @@ - - - - - - + + + + + + + + + + + + + + + + + @@ -237,7 +248,7 @@ - Uploading... + Uploading... @@ -338,7 +349,7 @@ - + @@ -350,9 +361,9 @@ - - - + + + diff --git a/graphics/installer_150x57.bmp b/graphics/installer_150x57.bmp new file mode 100644 index 000000000..e19d074df Binary files /dev/null and b/graphics/installer_150x57.bmp differ diff --git a/graphics/installer_150x57.png b/graphics/installer_150x57.png new file mode 100644 index 000000000..77e8f0484 Binary files /dev/null and b/graphics/installer_150x57.png differ diff --git a/graphics/installer_150x57.svg b/graphics/installer_150x57.svg new file mode 100644 index 000000000..6bdc12705 --- /dev/null +++ b/graphics/installer_150x57.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + JPEXS + + Free Flash + Free Flash + + + decompiler + decompiler + + JPEXS + + diff --git a/graphics/installer_164x314.bmp b/graphics/installer_164x314.bmp new file mode 100644 index 000000000..62a5b9f6d Binary files /dev/null and b/graphics/installer_164x314.bmp differ diff --git a/graphics/installer_164x314.png b/graphics/installer_164x314.png new file mode 100644 index 000000000..8cf265798 Binary files /dev/null and b/graphics/installer_164x314.png differ diff --git a/graphics/installer_164x314.svg b/graphics/installer_164x314.svg new file mode 100644 index 000000000..f1a70a1af --- /dev/null +++ b/graphics/installer_164x314.svg @@ -0,0 +1,499 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + dec + + FF + FF + + dec + + + + + + JPEXS + + Free Flash + Free Flash + + + decompiler + decompiler + + JPEXS + + diff --git a/graphics/installer_57x57.bmp b/graphics/installer_57x57.bmp new file mode 100644 index 000000000..2179c13eb Binary files /dev/null and b/graphics/installer_57x57.bmp differ diff --git a/graphics/installer_57x57.png b/graphics/installer_57x57.png new file mode 100644 index 000000000..8eecd707b Binary files /dev/null and b/graphics/installer_57x57.png differ diff --git a/installer.nsi b/installer.nsi new file mode 100644 index 000000000..eb3575503 --- /dev/null +++ b/installer.nsi @@ -0,0 +1,361 @@ +;-------------------------------- +;Include Modern UI + + !include "MUI2.nsh" + +;-------------------------------- +;General + +;These are defined in Ant script: +;!define APP_VER "4.0" +;!define APP_VER_MAJOR 4 +;!define APP_VER_MINOR 0 +;!define APP_URL "http://www.free-decompiler.com/flash/" +;!define APP_PUBLISHER "JPEXS" +;!define APP_NAME "JPEXS Free Flash Decompiler" + + + +!define APP_VERNAME "${APP_NAME} v. ${APP_VER}" +!define MUI_WELCOMEFINISHPAGE_BITMAP "graphics\installer_164x314.bmp" +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "graphics\installer_150x57.bmp" + +!define APP_UNINSTKEY "{E618D276-6596-41F4-8A98-447D442A77DB}_is1" + +SetCompressor /SOLID lzma + + ;Name and file + Name "${APP_VERNAME}" + OutFile "${APP_SETUPFILE}" + + + + ;Default installation folder + InstallDir "$PROGRAMFILES\FFDec" + + ;Get installation folder from registry if available + InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "InstallLocation" + + ;Request application privileges for Windows Vista + RequestExecutionLevel admin + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + + + + +!include LogicLib.nsh + +; Return on top of stack the total size of the selected (installed) sections, formated as DWORD +; Assumes no more than 256 sections are defined +Var GetInstalledSize.total +Function GetInstalledSize + Push $0 + Push $1 + StrCpy $GetInstalledSize.total 0 + ${ForEach} $1 0 256 + 1 + ${if} ${SectionIsSelected} $1 + SectionGetSize $1 $0 + IntOp $GetInstalledSize.total $GetInstalledSize.total + $0 + ${Endif} + + ; Error flag is set when an out-of-bound section is referenced + ${if} ${errors} + ${break} + ${Endif} + ${Next} + + ClearErrors + Pop $1 + Pop $0 + IntFmt $GetInstalledSize.total "0x%08X" $GetInstalledSize.total + Push $GetInstalledSize.total +FunctionEnd + +Function GetTime + !define GetTime `!insertmacro GetTimeCall` + + !macro GetTimeCall _FILE _OPTION _R1 _R2 _R3 _R4 _R5 _R6 _R7 + Push `${_FILE}` + Push `${_OPTION}` + Call GetTime + Pop ${_R1} + Pop ${_R2} + Pop ${_R3} + Pop ${_R4} + Pop ${_R5} + Pop ${_R6} + Pop ${_R7} + !macroend + + Exch $1 + Exch + Exch $0 + Exch + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + ClearErrors + + StrCmp $1 'L' gettime + StrCmp $1 'A' getfile + StrCmp $1 'C' getfile + StrCmp $1 'M' getfile + StrCmp $1 'LS' gettime + StrCmp $1 'AS' getfile + StrCmp $1 'CS' getfile + StrCmp $1 'MS' getfile + goto error + + getfile: + IfFileExists $0 0 error + System::Call /NOUNLOAD '*(i,l,l,l,i,i,i,i,&t260,&t14) i .r6' + System::Call /NOUNLOAD 'kernel32::FindFirstFileA(t,i)i(r0,r6) .r2' + System::Call /NOUNLOAD 'kernel32::FindClose(i)i(r2)' + + gettime: + System::Call /NOUNLOAD '*(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2) i .r7' + StrCmp $1 'L' 0 systemtime + System::Call /NOUNLOAD 'kernel32::GetLocalTime(i)i(r7)' + goto convert + systemtime: + StrCmp $1 'LS' 0 filetime + System::Call /NOUNLOAD 'kernel32::GetSystemTime(i)i(r7)' + goto convert + + filetime: + System::Call /NOUNLOAD '*$6(i,l,l,l,i,i,i,i,&t260,&t14)i(,.r4,.r3,.r2)' + System::Free /NOUNLOAD $6 + StrCmp $1 'A' 0 +3 + StrCpy $2 $3 + goto tolocal + StrCmp $1 'C' 0 +3 + StrCpy $2 $4 + goto tolocal + StrCmp $1 'M' tolocal + + StrCmp $1 'AS' tosystem + StrCmp $1 'CS' 0 +3 + StrCpy $3 $4 + goto tosystem + StrCmp $1 'MS' 0 +3 + StrCpy $3 $2 + goto tosystem + + tolocal: + System::Call /NOUNLOAD 'kernel32::FileTimeToLocalFileTime(*l,*l)i(r2,.r3)' + tosystem: + System::Call /NOUNLOAD 'kernel32::FileTimeToSystemTime(*l,i)i(r3,r7)' + + convert: + System::Call /NOUNLOAD '*$7(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2)i(.r5,.r6,.r4,.r0,.r3,.r2,.r1,)' + System::Free $7 + + IntCmp $0 9 0 0 +2 + StrCpy $0 '0$0' + IntCmp $1 9 0 0 +2 + StrCpy $1 '0$1' + IntCmp $2 9 0 0 +2 + StrCpy $2 '0$2' + IntCmp $6 9 0 0 +2 + StrCpy $6 '0$6' + + StrCmp $4 0 0 +3 + StrCpy $4 Sunday + goto end + StrCmp $4 1 0 +3 + StrCpy $4 Monday + goto end + StrCmp $4 2 0 +3 + StrCpy $4 Tuesday + goto end + StrCmp $4 3 0 +3 + StrCpy $4 Wednesday + goto end + StrCmp $4 4 0 +3 + StrCpy $4 Thursday + goto end + StrCmp $4 5 0 +3 + StrCpy $4 Friday + goto end + StrCmp $4 6 0 error + StrCpy $4 Saturday + goto end + + error: + SetErrors + StrCpy $0 '' + StrCpy $1 '' + StrCpy $2 '' + StrCpy $3 '' + StrCpy $4 '' + StrCpy $5 '' + StrCpy $6 '' + + end: + Pop $7 + Exch $6 + Exch + Exch $5 + Exch 2 + Exch $4 + Exch 3 + Exch $3 + Exch 4 + Exch $2 + Exch 5 + Exch $1 + Exch 6 + Exch $0 +FunctionEnd + + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "resources/license.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + +var SMDir + +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${APP_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Inno Setup: Icon Group" + !insertmacro MUI_PAGE_STARTMENU 0 $SMDir + !insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_RUN "$INSTDIR\ffdec.exe" + !insertmacro MUI_PAGE_FINISH + + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_LANGUAGE "Czech" + + + +;-------------------------------- +;Installer Sections + + +LangString Sec1Name ${LANG_ENGLISH} "FFDec" +LangString Sec1Name ${LANG_CZECH} "FFDec" + +LangString Sec2Desktop ${LANG_ENGLISH} "Desktop Shortcut" +LangString Sec2Desktop ${LANG_CZECH} "Zástupce na Ploše" + + +Section !$(Sec1Name) SecDummy + + SetShellVarContext all + + SetOutPath "$INSTDIR" + + File "dist\ffdec.exe" + File "dist\ffdec.bat" + File "dist\ffdec.jar" + File "dist\license.txt" + + SetOutPath "$INSTDIR" + File /r "dist\lib" + + + ;create start-menu items +!insertmacro MUI_STARTMENU_WRITE_BEGIN 0 ;This macro sets $SMDir and skips to MUI_STARTMENU_WRITE_END if the "Don't create shortcuts" checkbox is checked... + + CreateDirectory "$SMPROGRAMS\$SMDir" + CreateShortCut "$SMPROGRAMS\$SMDir\Uninstall ${APP_NAME}.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 + CreateShortCut "$SMPROGRAMS\$SMDir\${APP_NAME}.lnk" "$INSTDIR\ffdec.exe" "" "$INSTDIR\ffdec.exe" 0 + !insertmacro MUI_STARTMENU_WRITE_END + + ;Store installation folder + + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "DisplayName" "${APP_NAME} (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "UninstallString" '"$INSTDIR\Uninstall.exe"' + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S' + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "DisplayVersion" "${APP_VER}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "URLInfoAbout" "${APP_URL}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "URLUpdateInfo" "${APP_URL}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "HelpLink" "${APP_URL}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "Publisher" "${APP_PUBLISHER}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "InstallLocation" "$INSTDIR" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "Inno Setup: Icon Group" "$SMDir" + + Call GetInstalledSize + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "EstimatedSize" $GetInstalledSize.total + + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "MajorVersion" ${APP_VER_MAJOR} + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "MinorVersion" ${APP_VER_MINOR} + + ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" "InstallDate" "$2$1$0" + + + ;Create un1installer + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section !$(Sec2Desktop) +SetShellVarContext all +CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\ffdec.exe" "" +SectionEnd + +Function .onInit + # set section 'test' as selected and read-only + IntOp $0 ${SF_SELECTED} | ${SF_RO} + SectionSetFlags ${SecDummy} $0 +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "Application GUI and Libraries" + LangString DESC_SecDummy ${LANG_CZECH} "Aplikaèní rozhraní a knihovny" + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + SetShellVarContext all + RMDir /r "$INSTDIR\*.*" + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + ;Delete Start Menu Shortcuts + Delete "$DESKTOP\${APP_NAME}.lnk" + + + !insertmacro MUI_STARTMENU_GETFOLDER 0 $SMDir + + RmDir /r "$SMPROGRAMS\$SMDir\*.*" + RMDir "$SMPROGRAMS\$SMDir" + + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${APP_UNINSTKEY}" + +SectionEnd + diff --git a/libsrc/ffdec_lib/build_common.xml b/libsrc/ffdec_lib/build_common.xml index 2efe46c96..94500af79 100644 --- a/libsrc/ffdec_lib/build_common.xml +++ b/libsrc/ffdec_lib/build_common.xml @@ -135,7 +135,7 @@ - + @@ -147,9 +147,9 @@ - - - + + + diff --git a/nsisant-1.3.jar b/nsisant-1.3.jar new file mode 100644 index 000000000..b85c89a4b Binary files /dev/null and b/nsisant-1.3.jar differ