2017-06-08 4 views
0

Est-il possible d'inclure un script NSIS de CMake qui utilise CPack avec NSIS? Il semble que je suis limité à seulement quelques commandes (doc), mais certaines commandes suggèrent qu'il existe un moyen d'inclure l'ensemble de script NSIS, particulary:Y compris le script NSIS dans CMake

CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS, 
CPACK_NSIS_EXTRA_INSTALL_COMMANDS, 
CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS 

Cependant, quand je tente d'appeler ces commandes :

SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "!include extra_preinstall.nsh") 

Rien ne se passe. (Hors /NONFATAL renvoie une erreur, donc probablement le script ne peut pas être trouvé.)

Vérification des fonctionnalités de base:

SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "MessageBox MB_OK \\\"Hello world!\\\"") 

ne fait rien avec l'installateur.

Pourquoi un bouton Hello World n'apparaît-il pas? Pourquoi le fichier script n'est pas trouvé (même si je l'ai mis à tous les niveaux de CMake hiearchy)?

+0

Il y a quelques années, je viens de modifier le script NSIS fourni avec CMake pour ajouter les fonctionnalités dont j'avais besoin. – drescherjm

+0

J'ai examiné cela, ce qui a confirmé mon sentiment, qu'il doit y avoir un moyen d'inclure un script externe NSIS. – ViliX64

+0

Je nomme mon script NSIS de remplacement en tant que 'NSIS.template.in' et le place dans mon dossier de modules local ajouté via la commande' list (APPEND CMAKE_MODULE_PATH $ {PROJECT_SOURCE_DIR}/CMake/External/Modules) ' – drescherjm

Répondre

0

La préinstallation ne signifie pas qu'elle est exécutée avant la section d'installation, vous devez donc cliquer sur "installer", puis la commande est exécutée. Il en va de même pour l'installation et la désinstallation. Comme pour inclure des scripts externes: y compris avec le chemin absolu résout tout. Si le chemin absolu n'est pas disponible, il peut être facilement obtenu en utilisant les outils CMake.