2017-10-17 23 views
1

J'ai une construction de projet utilisant cmake + make qui utilise une macro pour changer les capacités sur les fichiers de l'application. J'essaie de passer de make à ninja, mais quand sudo doit me demander le mot de passe root pour lancer setcap ninja ne montre pas la requête et ne me permet pas de l'insérer.Sudo pendant Ninja Build

Est-il possible de faire quelque chose?

PS. Déplacer l'exécution de setcap hors de l'heure de construction n'est pas une option parce que les autres types utilisent make et ils sont heureux de cette façon!

Répondre

0

L'objectif qui exécute sudo devrait être dans la piscine de la console

Il existe un pool prédéfini console appelée avec une profondeur de 1. Il a la propriété spéciale qui une tâche dans la piscine a accès direct à l'entrée standard, flux de sortie et d'erreur fournis à Ninja, qui sont normalement connectés à la console de l'utilisateur (d'où le nom) mais pourraient être redirigés. Cela peut être utile pour les tâches interactives ou les tâches de longue durée qui produisent des mises à jour d'état sur la console (telles que en tant que suites de test).

Docs

+0

Merci beaucoup, il était ce que je cherchais, mais quand j'ai ajouté à mon add_custom_command USES_TERMINAL (version 3.7.2 cmake), malheureusement rien changé. – PeppeDx

+0

Avez-vous vérifié si cela se traduit réellement dans le fichier Ninja.build généré? – renemilk

+0

Vous avez raison. J'ai manuellement ajouté pool = console à l'intérieur de la construction du lien du fichier ninja et cela a fonctionné. Cela semble donc un problème avec le générateur CMake. – PeppeDx