Argument facultatif dans la macro cmake
Je souhaite créer une macro dont l'argument est facultatif. Si non spécifié, l'argument de la valeur doit être une chaîne vide. Comment puis-je faire cela? Merci pour votre aide.
source d'informationauteur amit_grepclub
Vous devez vous connecter pour publier un commentaire.
CMake n'a pas (à ma connaissance) de vérifier le nombre de variables passées à une macro, de sorte que vous pouvez simplement aller de l'avant et de le déclarer comme n'importe quelle autre macro.
Il y a aussi une variable
${ARGN}
qui se développe à une liste de tous les "autres" variables passées à une macro, ce qui peut être utile.Mise à jour
Comme indiqué dans Sam's commentaire, CMake maintenant échoue à moins que prévu (nommé) arguments sont donnés lors de l'appel d'une macro ou une fonction.
Tous les arguments nommé dans votre définition de macro sont nécessaires pour les appelants. Cependant, votre macro pouvez toujours accepter les arguments optionnels tant qu'ils ne sont pas nommés explicitement dans la définition de la macro.
Qui est, les appels sont autorisés à passer dans supplémentaire des arguments (qui n'étaient pas mentionnés dans la macro de la liste d'arguments). Votre macro pouvez vérifier l'existence de tels arguments supplémentaires en cochant la
${ARGN}
variable.Attention:
ARGN
n'est pas "normal" cmake variable. Pour l'utiliser avec lelist()
de commande, vous devez le copier dans une variable normale d'abord:Ce qui se passe par défaut si l'argument n'est pas spécifié comme CMake n'est pas de vérifier le nombre de paramètres requis pour une macro.