Installation du jeu de préfixe automatiquement chemin personnalisé si pas explicitement spécifié sur la ligne de commande

Pour certains tests internes, je voudrais l'installer préfixe par défaut dans un sous-répertoire du répertoire de construction, sauf s'il est explicitement remplacée par l'utilisateur. Je sais que l'utilisateur peut spécifier un installer préfixe:

$ cmake -DCMAKE_INSTALL_PREFIX=/foo/bar ..

Mais si l'utilisateur ne pas le préciser, il devrait être par défaut, par exemple, à ${PWD}/installed.

La variable CMAKE_INSTALL_PREFIX est d'ores et déjà /usr/local, donc je ne peux pas juste vérifier pour voir si il unset/vide avant de le mettre.

Ma solution actuelle est d'ajouter un interrupteur que l'utilisateur a à invoquer pour spécifier que le CMAKE_INSTALL_PREFIX variable est respectée:

option(ENABLE_INSTALL_PREFIX "Install build targets to system (path given by '-DCMAKE_INSTALL_PREFIX' or '${CMAKE_INSTALL_PREFIX}' if not specified)." OFF)
if ( ENABLE_INSTALL_PREFIX )
    set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root")
else()
    set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root" FORCE)
endif()

Mes questions sont:

(a) existe-t-il des problèmes avec l'au-delà, au-delà de la gêne de l'indicateur supplémentaire devant être transmis à CMake pour obtenir CMAKE_INSTALL_PREFIX avoir un effet?

(b) Est-il meilleur, plus propre, plus robuste, plus idiomatiques et/ou moins ennuyeux pour atteindre le plus haut?

Grâce.

InformationsquelleAutor Jeet | 2013-04-18