environment.nsh

来自「奇趣公司比较新的qt/emd版本」· NSH 代码 · 共 212 行

NSH
212
字号
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright (C) 2007-2007 Trolltech ASA. All rights reserved.;;;; This file is part of the Windows installer of the Qt Toolkit.;;;; This file may be used under the terms of the GNU General Public;; License version 2.0 as published by the Free Software Foundation;; and appearing in the file LICENSE.GPL included in the packaging of;; this file.  Please review the following information to ensure GNU;; General Public Licensing requirements will be met:;; http://trolltech.com/products/qt/licenses/licensing/opensource/;;;; If you are unsure which license is appropriate for your use, please;; review the following information:;; http://trolltech.com/products/qt/licenses/licensing/licensingoverview;; or contact the sales department at sales@trolltech.com.;;;; In addition, as a special exception, Trolltech gives you certain;; additional rights. These rights are described in the Trolltech GPL;; Exception version 1.0, which can be found at;; http://www.trolltech.com/products/qt/gplexception/ and in the file;; GPL_EXCEPTION.txt in this package.;;;; In addition, as a special exception, Trolltech, as the sole copyright;; holder for Qt Designer, grants users of the Qt/Eclipse Integration;; plug-in the right for the Qt/Eclipse Integration to link to;; functionality provided by Qt Designer and its related libraries.;;;; Trolltech reserves all rights not expressly granted herein.;;;; This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE;; WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!ifdef MODULE_ENVIRONMENT!macro ENVIRONMENT_INITIALIZE  !include "includes\writeEnvStr.nsh"  !include "includes\writePathStr.nsh"    !ifndef MODULE_ENVIRONMENT_QTDIR    !ifdef MODULE_MINGW      !define MODULE_ENVIRONMENT_QTDIR $MINGW_INSTDIR    !endif    !ifdef MODULE_MSVC      !define MODULE_ENVIRONMENT_QTDIR $MSVC_INSTDIR    !endif  !endif  !define MODULE_ENVIRONMENT_PAGE "envpage.ini"  var MODULE_ENVIRONMENT_SET  var MODULE_ENVIRONMENT_OLD  LangString ModuleEnvironmentTitle ${LANG_ENGLISH} "Configure Environment"  LangString ModuleEnvironmentDescription ${LANG_ENGLISH} "Configure Qt environment variables"    Page custom ModuleEnvironmentPageEnter ModuleEnvironmentPageExit!macroend!macro ENVIRONMENT_SECTIONS  Section -ModuleEnvironmentRegister    push "${MODULE_ENVIRONMENT_QTDIR}"    call RegisterQtEnvVariables  SectionEnd  Function ModuleEnvironmentPageEnter    push $0    Call IsNT    pop $0    strcmp "$0" "1" +2      abort    pop $0        !insertmacro MUI_HEADER_TEXT "$(ModuleEnvironmentTitle)" "$(ModuleEnvironmentDescription)"    strcmp $MODULE_ENVIRONMENT_SET "1" 0 envCheckNo      !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "1"      goto showEnvPage    envCheckNo:      !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "0"    showEnvPage:      !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_ENVIRONMENT_PAGE}"  FunctionEnd  Function ModuleEnvironmentPageExit    !insertmacro MUI_INSTALLOPTIONS_READ $MODULE_ENVIRONMENT_SET "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State"  FunctionEnd  Function RegisterQtEnvVariables    exch $2 ; the installation path = QTDIR    push $0 ; I think WriteEnvStr mixes up $0 and $1    push $1    WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet" $MODULE_ENVIRONMENT_SET    strcmp $MODULE_ENVIRONMENT_SET "1" 0 noenv    StrCmp $MODULE_ENVIRONMENT_OLD "0" +4    DetailPrint "Removing $MODULE_ENVIRONMENT_OLD\bin from PATH"    push "$MODULE_ENVIRONMENT_OLD\bin"    Call RemoveFromPath ; remove old qtdir    DetailPrint "Setting QTDIR to $2"    push "QTDIR"    push $2    Call WriteEnvStr ; set the QTDIR    DetailPrint "Adding $2\bin to PATH"    push "$2\bin"    Call AddToPath ; set the PATH    push "QMAKESPEC"    push ${INSTALL_COMPILER}    Call GetMkSpec    pop $0    DetailPrint "Setting QMAKESPEC to $0"    push $0    Call WriteEnvStr ; set the QMAKESPEC    noenv:      pop $1      pop $0      pop $2  FunctionEnd  Function un.RegisterQtEnvVariables    exch $0 ; QTDIR    push $1    ClearErrors    ReadRegDWORD $MODULE_ENVIRONMENT_SET SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet"    intcmp $MODULE_ENVIRONMENT_SET 0 noenv    DetailPrint "Removing $0\bin from the PATH"    push "$0\bin"    Call un.RemoveFromPath ; removes qt from the path    ;Check if QTDIR is equal to installdir    ExpandEnvStrings $1 "%QTDIR%"    StrCmp "$0" "$1" removeenv    StrCmp "$0\" "$1" removeenv    StrCmp "$0" "$1\" removeenv    Goto noenv    removeenv:    DetailPrint "Removing QTDIR"    push "QTDIR"    Call un.DeleteEnvStr ; removes QTDIR    DetailPrint "Removing QMAKESPEC"    push "QMAKESPEC"    Call un.DeleteEnvStr ; removes QMAKESPEC    noenv:      pop $1       pop $0  FunctionEnd!macroend!macro ENVIRONMENT_DESCRIPTION!macroend!macro ENVIRONMENT_STARTUP  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_ENVIRONMENT_PAGE}"  push $0  ExpandEnvStrings $0 "%QTDIR%"  StrCmp $0 "%QTDIR%" +4  strcpy $MODULE_ENVIRONMENT_SET "0" ;QTDIR exists  strcpy $MODULE_ENVIRONMENT_OLD $0  Goto +3  strcpy $MODULE_ENVIRONMENT_SET "1" ;no QTDIR  strcpy $MODULE_ENVIRONMENT_OLD "0"    Call IsNT  pop $0  strcmp "$0" "1" +2    strcpy $MODULE_ENVIRONMENT_SET "0"  pop $0!macroend!macro ENVIRONMENT_FINISH!macroend!macro ENVIRONMENT_UNSTARTUP!macroend!macro ENVIRONMENT_UNINSTALL  Section -un.ModuleEnvironmentRegister    push "${MODULE_ENVIRONMENT_QTDIR}"    call un.RegisterQtEnvVariables  SectionEnd!macroend!macro ENVIRONMENT_UNFINISH!macroend!else ;MODULE_ENVIRONMENT!macro ENVIRONMENT_INITIALIZE!macroend!macro ENVIRONMENT_SECTIONS!macroend!macro ENVIRONMENT_DESCRIPTION!macroend!macro ENVIRONMENT_STARTUP!macroend!macro ENVIRONMENT_FINISH!macroend!macro ENVIRONMENT_UNSTARTUP!macroend!macro ENVIRONMENT_UNINSTALL!macroend!macro ENVIRONMENT_UNFINISH!macroend!endif ;MODULE_ENVIRONMENT

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?