cmake
Fonctions et macros
Recherche…
Remarques
La principale différence entre les macros et les fonctions est que les macros sont évaluées dans le contexte actuel, tandis que les fonctions ouvrent une nouvelle étendue au sein du contexte actuel. Ainsi, les variables définies dans les fonctions ne sont pas connues après l’évaluation de la fonction. Au contraire, les variables au sein des macros sont toujours définies après évaluation de la macro.
Macro simple pour définir une variable en fonction de l'entrée
macro(set_my_variable _INPUT)
if("${_INPUT}" STREQUAL "Foo")
set(my_output_variable "foo")
else()
set(my_output_variable "bar")
endif()
endmacro(set_my_variable)
Utilisez la macro:
set_my_variable("Foo")
message(STATUS ${my_output_variable})
imprimera
-- foo
tandis que
set_my_variable("something else")
message(STATUS ${my_output_variable})
imprimera
-- bar
Macro pour remplir une variable de prénom
macro(set_custom_variable _OUT_VAR)
set(${_OUT_VAR} "Foo")
endmacro(set_custom_variable)
Utilisez-le avec
set_custom_variable(my_foo)
message(STATUS ${my_foo})
qui imprimera
-- Foo
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow