Annotation of win32/dist.x64/parser_mui_en.nsi, revision 1.4
1.4 ! moko 1: ; parser.nsi
! 2: ;
! 3:
! 4: !include "MUI.nsh"
! 5: !include "Library.nsh"
! 6:
! 7: ;--------------------------------
! 8: ; Configuration
! 9:
! 10: !define VER_FILE "3_5_0rcx64"
! 11: !define VER_DISPLAY "3.5.0rcx64"
! 12: !define VER_LANG "en"
! 13: !define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\Parser 3"
! 14:
! 15: ; General
! 16: Name "Parser ${VER_DISPLAY}"
! 17: Caption "Parser ${VER_DISPLAY}"
! 18:
! 19: SetCompressor /SOLID lzma
! 20: SetOverwrite ifnewer
! 21: CRCCheck on
! 22: AllowRootDirInstall false
! 23: SetDatablockOptimize on
! 24: SetDateSave on
! 25:
! 26: ; The file to write
! 27: OutFile "parser${VER_FILE}_${VER_LANG}.exe"
! 28:
! 29: !define MUI_HEADERIMAGE
! 30: !define MUI_HEADERIMAGE_BITMAP "logo.bmp"
! 31: !define MUI_HEADERIMAGE_NOSTRETCH
! 32:
! 33: ; !define MUI_BGCOLOR "99D228"
! 34: !define MUI_ICON "favicon.ico"
! 35: !define MUI_UNICON "favicon.ico"
! 36:
! 37: ; Interface Settings
! 38: ;!define MUI_ABORTWARNING
! 39: !define MUI_COMPONENTSPAGE_SMALLDESC
! 40: !define MUI_FINISHPAGE_NOAUTOCLOSE
! 41: !define MUI_UNFINISHPAGE_NOAUTOCLOSE
! 42:
! 43: ;--------------------------------
! 44: ; Pages
! 45: !define MUI_LICENSEPAGE_RADIOBUTTONS
! 46: !define MUI_WELCOMEPAGE_TEXT "This programm will install Parser ${VER_DISPLAY} on your computer.\r\n\r\nClick Next to continue"
! 47: !define MUI_COMPONENTSPAGE_TEXT '"Select components to install and click Next to continue" "" "Components"'
! 48:
! 49: !insertmacro MUI_PAGE_WELCOME
! 50: !insertmacro MUI_PAGE_LICENSE "license_${VER_LANG}.txt"
! 51: !insertmacro MUI_PAGE_COMPONENTS
! 52: !insertmacro MUI_PAGE_DIRECTORY
! 53: !insertmacro MUI_PAGE_INSTFILES
! 54:
! 55: !insertmacro MUI_UNPAGE_CONFIRM
! 56: !insertmacro MUI_UNPAGE_INSTFILES
! 57:
! 58: ;--------------------------------
! 59: ; Languages
! 60: !insertmacro MUI_LANGUAGE "English"
! 61:
! 62: ;--------------------------------
! 63: ; Installer Sections
! 64:
! 65: Section ""
! 66: WriteRegStr HKLM "${UNINSTALL_PATH}" "DisplayName" "Parser 3 (remove only)"
! 67: WriteRegStr HKLM "${UNINSTALL_PATH}" "DisplayVersion" "${VER_DISPLAY}"
! 68: WriteRegStr HKLM "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\parser3_uninst.exe"
! 69: WriteRegStr HKLM "${UNINSTALL_PATH}" "HelpLink" "http://www.parser.ru/en/"
! 70: WriteRegStr HKLM "${UNINSTALL_PATH}" "URLInfoAbout" "http://www.parser.ru/en/"
! 71: WriteRegDWORD HKLM "${UNINSTALL_PATH}" "NoModify" 1
! 72: WriteRegStr HKLM "${UNINSTALL_PATH}" "UninstallString" '"$INSTDIR\parser3_uninst.exe"'
! 73: SetOutPath $INSTDIR
! 74: WriteUninstaller "parser3_uninst.exe"
! 75: SectionEnd
! 76:
! 77: Section "CGI with XML" XML
! 78: SetOutPath $INSTDIR
! 79: File "cgi_xml\*.*"
! 80: SectionEnd
! 81:
! 82:
! 83: Section "IIS ISAPI with XML" ISAPIXML
! 84: SetOutPath $INSTDIR
! 85: File "isapi_xml\*.*"
! 86: SectionEnd
! 87:
! 88:
! 89: SubSection /e "Documentation"
! 90:
! 91: Section "CHM" CHM
! 92: CreateDirectory "$INSTDIR\docs"
! 93: SetOutPath $INSTDIR\docs
! 94: File "docs\*.${VER_LANG}.chm"
! 95: SectionEnd
! 96:
! 97: Section "PDF" PDF
! 98: CreateDirectory "$INSTDIR\docs"
! 99: SetOutPath $INSTDIR\docs
! 100: File "docs\*.${VER_LANG}.pdf"
! 101: SectionEnd
! 102:
! 103: SubSectionEnd
! 104:
! 105:
! 106: SubSection /e "Misc" other
! 107:
! 108: Section "Main configuration file" AUTO
! 109: SetOutPath $INSTDIR
! 110: File "config\auto.p"
! 111: CreateDirectory "$INSTDIR\charsets"
! 112: SetOutPath $INSTDIR\charsets
! 113: File "config\charsets\*.*"
! 114: SectionEnd
! 115:
! 116: Section "libcurl library" LIBCURL
! 117: SetOutPath $INSTDIR
! 118: File "lib\curl\libcurl.dll"
! 119: SectionEnd
! 120:
! 121: Section "_test.html" test
! 122: CreateDirectory "$INSTDIR\other"
! 123: SetOutPath $INSTDIR\other
! 124: File "other\${VER_LANG}\_test.html"
! 125: SectionEnd
! 126:
! 127: SubSectionEnd
! 128:
! 129:
! 130: SubSection /e "SQL drivers"
! 131:
! 132: Section "MySQL driver" MYSQL
! 133: CreateDirectory "$INSTDIR\lib"
! 134: SetOutPath $INSTDIR\lib
! 135: File "sql\parser3mysql.dll"
! 136:
! 137: File "lib\sql\libmySQL.dll"
! 138:
! 139: SetOutPath $INSTDIR
! 140: File "lib\sql-mysql-dependences\*.dll"
! 141: SectionEnd
! 142:
! 143:
! 144: Section "SQLite driver" SQLITE
! 145: CreateDirectory "$INSTDIR\lib"
! 146: SetOutPath $INSTDIR\lib
! 147: File "sql\parser3sqlite.dll"
! 148:
! 149: File "lib\sql\sqlite3.dll"
! 150: SectionEnd
! 151:
! 152:
! 153: Section "Oracle driver" ORACLE
! 154: CreateDirectory "$INSTDIR\lib"
! 155: SetOutPath $INSTDIR\lib
! 156: File "sql\parser3oracle.dll"
! 157: SectionEnd
! 158:
! 159:
! 160: Section "PostgreSQL driver" PGSQL
! 161: CreateDirectory "$INSTDIR\lib"
! 162: SetOutPath $INSTDIR\lib
! 163: File "sql\parser3pgsql.dll"
! 164:
! 165: File "lib\sql\libpq.dll"
! 166:
! 167: SetOutPath $INSTDIR
! 168: File "lib\sql-pq-dependences\*.dll"
! 169: SectionEnd
! 170:
! 171: SubSectionEnd
! 172:
! 173:
! 174:
! 175: ;--------------------------------
! 176: ; Descriptions
! 177:
! 178: !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
! 179: !insertmacro MUI_DESCRIPTION_TEXT ${XML} "Can be used with any web-server which supports CGI scripts"
! 180: !insertmacro MUI_DESCRIPTION_TEXT ${ISAPIXML} "IIS ISAPI extension is more efficient than CGI"
! 181:
! 182: !insertmacro MUI_DESCRIPTION_TEXT ${CHM} "Documentation as Windows help file"
! 183: !insertmacro MUI_DESCRIPTION_TEXT ${PDF} "Documentation ready to print"
! 184:
! 185: !insertmacro MUI_DESCRIPTION_TEXT ${AUTO} "Main configuration file (auto.p)"
! 186: !insertmacro MUI_DESCRIPTION_TEXT ${LIBCURL} "libcurl library which is used from curl class"
! 187: !insertmacro MUI_DESCRIPTION_TEXT ${test} "File to test Parser installation"
! 188:
! 189: !insertmacro MUI_DESCRIPTION_TEXT ${MYSQL} "Driver to access MySQL servers"
! 190: !insertmacro MUI_DESCRIPTION_TEXT ${SQLITE} "Driver for SQLite"
! 191: !insertmacro MUI_DESCRIPTION_TEXT ${PGSQL} "Driver to access PgSQL servers"
! 192: !insertmacro MUI_DESCRIPTION_TEXT ${ORACLE} "Driver to access ORACLE servers"
! 193: !insertmacro MUI_FUNCTION_DESCRIPTION_END
! 194:
! 195: DirText "Specify a folder where your web-server keeps CGI-scripts" "Folder to install Parser ${VER_DISPLAY}" "Change"
! 196: InstallDir "$7"
! 197: InstallDirRegKey HKLM "SOFTWARE\Art Lebedev Studio\Parser 3" "Install_Dir"
! 198:
! 199:
! 200:
! 201: ;--------------------------------
! 202: ; Uninstaller Section
! 203:
! 204: UninstallText "Uninstall Parser 3 Click Next to continue" "Folder"
! 205: UninstallSubCaption 0 ": Confirm"
! 206: UninstallSubCaption 1 ": Deleting files"
! 207: UninstallSubCaption 2 ": Delete completed"
! 208: UninstallButtonText "Next"
! 209:
! 210:
! 211: ; special uninstall section.
! 212: Section "Uninstall"
! 213: ; remove files
! 214: Delete "$INSTDIR\charsets\*.cfg"
! 215: RMDir "$INSTDIR\charsets"
! 216:
! 217: ; SQL drivers
! 218: Delete "$INSTDIR\lib\parser3*.dll"
! 219:
! 220: ; SQL libs
! 221: Delete "$INSTDIR\lib\libmySQL.dll"
! 222: Delete "$INSTDIR\lib\sqlite*.dll"
! 223: Delete "$INSTDIR\lib\libpq*.dll"
! 224:
! 225: RMDir "$INSTDIR\lib"
! 226:
! 227: ; CURL, sql-pq-dependences
! 228: Delete "$INSTDIR\lib*.dll"
! 229:
! 230: ; DOCs
! 231: Delete "$INSTDIR\docs\*.*"
! 232: RMDir "$INSTDIR\docs"
! 233:
! 234: ; rest
! 235: Delete "$INSTDIR\*parser3*.*"
! 236:
! 237: Delete "$INSTDIR\readme.*.txt"
! 238: Delete "$INSTDIR\Readme"
! 239: Delete "$INSTDIR\auto.p"
! 240:
! 241: Delete "$INSTDIR\other\_test.html"
! 242: RMDir "$INSTDIR\other"
! 243:
! 244: ; remove registry keys
! 245: DeleteRegKey HKLM "SOFTWARE\Art Lebedev Studio\"
! 246: DeleteRegKey HKLM "${UNINSTALL_PATH}"
! 247: ; MUST REMOVE UNINSTALLER, too
! 248: Delete $INSTDIR\parser3_uninst.exe
! 249: ; remove directories used.
! 250: ; RMDir "$INSTDIR"
! 251: SectionEnd
! 252:
! 253:
! 254: ;!define SF_SELECTED 1
! 255: ;!define SF_SUBSEC 2
! 256: ;!define SF_SUBSECEND 4
! 257: ;!define SF_BOLD 8
! 258: ;!define SF_RO 16
! 259: ;!define SF_EXPAND 32
! 260:
! 261: ;!define SECTION_OFF 0xFFFFFFFE
! 262:
! 263: Function .onInit
! 264: StrCpy $INSTDIR "C:\"
! 265:
! 266: ; looking for directory with Apache installation
! 267: Push $5
! 268: Push $6
! 269: Push $7
! 270:
! 271: ; Apache 2.0 and may be early
! 272: StrCpy $5 0
! 273: loop1:
! 274: EnumRegKey $6 HKLM "SOFTWARE\Apache Group\Apache" "$5"
! 275: StrCmp $6 "" end1
! 276: IntOp $5 $5 + 1
! 277: ReadRegStr $7 HKLM "SOFTWARE\Apache Group\Apache\$6" "ServerRoot"
! 278: StrCmp $7 "" loop1
! 279: StrCpy $INSTDIR "$7cgi-bin"
! 280: Goto loop1
! 281: end1:
! 282:
! 283: ; Apache 2.2
! 284: StrCpy $5 0
! 285: loop2:
! 286: EnumRegKey $6 HKLM "SOFTWARE\Apache Software Foundation\Apache" "$5"
! 287: StrCmp $6 "" end2
! 288: IntOp $5 $5 + 1
! 289: ReadRegStr $7 HKLM "SOFTWARE\Apache Software Foundation\Apache\$6" "ServerRoot"
! 290: StrCmp $7 "" loop2
! 291: StrCpy $INSTDIR "$7cgi-bin"
! 292: Goto loop2
! 293: end2:
! 294:
! 295: ; MessageBox MB_OK "$INSTDIR"
! 296:
! 297: Pop $7
! 298: Pop $6
! 299: Pop $5
! 300:
! 301: Push $0
! 302:
! 303: StrCpy $1 ${XML}
! 304:
! 305: SectionGetFlags ${XML} $0
! 306: IntOp $0 $0 | ${SF_SELECTED}
! 307: SectionSetFlags ${XML} $0
! 308:
! 309: SectionGetFlags ${ISAPIXML} $0
! 310: IntOp $0 $0 & ${SECTION_OFF}
! 311: SectionSetFlags ${ISAPIXML} $0
! 312:
! 313:
! 314:
! 315: SectionGetFlags ${CHM} $0
! 316: IntOp $0 $0 | ${SF_SELECTED}
! 317: SectionSetFlags ${CHM} $0
! 318:
! 319: SectionGetFlags ${PDF} $0
! 320: IntOp $0 $0 & ${SECTION_OFF}
! 321: SectionSetFlags ${PDF} $0
! 322:
! 323:
! 324:
! 325: SectionGetFlags ${AUTO} $0
! 326: IntOp $0 $0 | ${SF_SELECTED}
! 327: SectionSetFlags ${AUTO} $0
! 328:
! 329: SectionGetFlags ${LIBCURL} $0
! 330: IntOp $0 $0 | ${SF_SELECTED}
! 331: SectionSetFlags ${LIBCURL} $0
! 332:
! 333:
! 334:
! 335: SectionGetFlags ${MYSQL} $0
! 336: IntOp $0 $0 | ${SF_SELECTED}
! 337: SectionSetFlags ${MYSQL} $0
! 338:
! 339: SectionGetFlags ${SQLITE} $0
! 340: IntOp $0 $0 | ${SF_SELECTED}
! 341: SectionSetFlags ${SQLITE} $0
! 342:
! 343: SectionGetFlags ${ORACLE} $0
! 344: IntOp $0 $0 & ${SECTION_OFF}
! 345: SectionSetFlags ${ORACLE} $0
! 346:
! 347: SectionGetFlags ${PGSQL} $0
! 348: IntOp $0 $0 & ${SECTION_OFF}
! 349: SectionSetFlags ${PGSQL} $0
! 350:
! 351: Pop $0
! 352: FunctionEnd
! 353:
! 354: Function .onSelChange
! 355: ; MessageBox MB_OK 'onSelChange'
! 356: Push $0
! 357:
! 358: ; Turn off old selected section
! 359: SectionGetFlags $1 $0
! 360: IntOp $0 $0 & ${SECTION_OFF}
! 361: SectionSetFlags $1 $0
! 362:
! 363: ; Now remember the current selection
! 364: Push $2
! 365: StrCpy $2 $1
! 366:
! 367: SectionGetFlags ${XML} $0
! 368: IntOp $0 $0 & ${SF_SELECTED}
! 369: IntCmp $0 ${SF_SELECTED} 0 +2 +2
! 370: StrCpy $1 ${XML}
! 371:
! 372: SectionGetFlags ${ISAPIXML} $0
! 373: IntOp $0 $0 & ${SF_SELECTED}
! 374: IntCmp $0 ${SF_SELECTED} 0 +2 +2
! 375: StrCpy $1 ${ISAPIXML}
! 376:
! 377: StrCmp $2 $1 0 +2
! 378: SectionGetFlags $1 $0
! 379: IntOp $0 $0 | ${SF_SELECTED}
! 380: SectionSetFlags $1 $0
! 381: Pop $2
! 382: Pop $0
! 383: FunctionEnd
! 384:
! 385:
! 386: Function .onInstSuccess
! 387: WriteRegStr HKLM "SOFTWARE\Art Lebedev Studio\Parser 3" "Install_Dir" "$INSTDIR"
! 388: MessageBox MB_YESNO|MB_ICONQUESTION "Do you want to read a short installation instruction?" IDNO NoReadMe
! 389: Exec 'notepad.exe "$INSTDIR\readme.${VER_LANG}.txt"'
! 390: NoReadMe:
! 391: FunctionEnd
E-mail: