Précédent | Sommaire | Suivant

5.1 Commandes du compilateur

Ces commandes sont similaires à celles du préprocesseur C en terme de fonctionnalités et d'utilisation. Elles autorisent l'inclusion de fichiers, la compilation conditionnelle, la compression de l'en-tête de l’exécutable et permet l'exécution pendant le processus de création. Note : aucune de ces commandes n'autorise l'utilisation de variables.

5.1.1 !include

[/NONFATAL] fichier

Cette commande va inclure 'fichier' tout comme s'il faisait partie du script original. Notez que si le script est inclus depuis un autre répertoire, le répertoire de travail sera toujours celui d'où le script est compilé (et non celui du fichier inclus). Si le compilateur ne peut pas trouver le fichier, il chercher dans tous les répertoires d'inclusion. Voir !addincludedir pour plus d'informations. Si le paramètre /nonfatal est utilisé et qu'aucun fichier n'est trouvé, une alerte sera affichée au lieu d'une erreur.

!include WinMessages.nsh
!include Library.nsh
!include C:\MyConfig.nsi
!include ..\MyConfig.nsh
!include /NONFATAL file_that_may_exist_or_not.nsh

5.1.2 !addincludedir

répertoire

Ajoute un autre répertoire d'inclusion dans la liste des répertoires d'inclusion. Cette liste est utilisée lorsque !include est utilisé. La valeur initiale de cette liste est ${NSISDIR}\Include.

!addincludedir ..\include
!include something.nsh

5.1.3 !addplugindir

repertoire

Indique au compilateur NSIS de scanner dans le répertoire spécifié des dlls à brancher.

!addplugindir myplugin
MyPlugin::SomeFunction

5.1.4 !appendfile

texte fichier 

Traite text en file.

!tempfile FILE
!appendfile "${FILE}" "XPStyle on$\n"
!appendfile "${FILE}" "Name 'test'$\n"
!include "${FILE}"
!delfile "${FILE}"
!undef FILE

5.1.5 !cd

nv_rep

Cette commande va modifier le répertoire de la compilation. nv_rep peut être un chemin relatif ou absolu.

!cd ..\more-scripts\new

5.1.6 !delfile

file

Cette commande supprime un fichier.

!tempfile FILE
!delfile "${FILE}"
!undef FILE

5.1.7 !echo

message

Cette commande affichera un message à l'utilisateur durant la compilation.

!echo "hello world"

5.1.8 !error

[message]

Cette commande générera une erreur pour le compilateur, et arrêtera le traitement du script. Vous pouvez aussi ajouter un message à cette erreur.

!ifdef VERSION & NOVERSION
  !error "VERSION et NOVERSION sont tout deux définis"
!endif

5.1.9 !execute

commande

Cette commande exécutera 'commande' avec un appel de CreateProcess(). A l'inverse de !system, cela n'utilise pas le processeur de ligne de commande, donc les redirection entrée/sortie et commandes comme 'cd', 'dir' et 'type' ne peuvent pas être utilisées. !execute ignore aussi le retour de valeur de la commande exécutée. Actuellement, le seul avantage connu de !execute par rapport à !system est qu'il ne cause pas de problème quand le répertoire de travail est spécifié par UNC.

Sur le plateformes POSIX, !execute utilisera system() tout comme !system.

!execute '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"'

5.1.10 !packhdr

fichier_temp commande

Cette option permet au compilateur d'utiliser un compresseur d'EXE externe (tel que Petite ou UPX) pour compresser l'en-tête exécutable. Spécifiez un nom de fichier temporaire (comme "temp.dat") ainsi qu'une ligne de commande (comme "C:\program files\upx\upx -9 temp.dat") pour compresser l'en-tête.

!packhdr "$%TEMP%\exehead.tmp" '"C:\Program Files\UPX\upx.exe" "$%TEMP%\exehead.tmp"'

5.1.11 !system

commande [comparaison valeur_comparaison]

Cette commande exécutera 'commande' en utilisant un appel de system(), et si la valeur de retour comparée (en utilisant 'comparaison') à 'valeur_comparaison' est fausse, l'exécution s'arrêtera. 'Comparaison' peut être '<' ou '>' ou '<>' ou '=' ou 'ignore' (ignorer).

!system '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"'
!system 'echo !define something > newinclude.nsh'
!include newinclude.nsh
!ifdef something
  !echo "something is defined"
!endif

5.1.12 !tempfile

symbol

Cette commande crée un fichier temporaire. Elle mets son chemin dans un define, nommé symbol.

!tempfile PACKHDRTEMP
!packhdr "${PACKHDRTEMP}" '"C:\Program Files\UPX\upx.exe" "${PACKHDRTEMP}"'
!tempfile FILE
!define /date DATE "%H:%M:%S %d %b, %Y"
!system 'echo built on ${DATE} > "${FILE}"'
File /oname=build.txt "${FILE}"
!delfile "${FILE}"
!undef FILE
!undef DATE

5.1.13 !warning

[message]

Cette commande alertera le compilateur. Vous pouvez aussi ajouter un message à cette avertissement.

!ifdef USE_DANGEROUS_STUFF
  !warning "ceci est dangereux"
!endif

5.1.14 !verbose

niveau | push | pop

Cette commande va définir le niveau verbeux. 4=tout, 3=pas de script, 2=pas d'infos, 1=pas d'avertissement, 0=rien

Passer push amène !verbose à placer le niveau verbeux courant dans une pile spéciale. Passer pop amène !verbose à récupérer le niveau verbeux courant depuis la même pile et à l'utiliser.

!verbose push
!verbose 1
!include WinMessages.nsh
!verbose pop

Précédent | Sommaire | Suivant


A propos | Contacts | Publicité | Info légales | © Todae 2006-2008

Sites partenaires : discount | avis rémunérés| sorties DVD | Winamp