cmake
Funzioni e macro
Ricerca…
Osservazioni
La principale differenza tra macro e funzioni è che le macro vengono valutate all'interno del contesto corrente, mentre le funzioni aprono un nuovo ambito all'interno di quello corrente. Pertanto, le variabili definite all'interno delle funzioni non sono note dopo che la funzione è stata valutata. Al contrario, le variabili all'interno dei macro sono ancora definite dopo che la macro è stata valutata.
Macro semplice per definire una variabile in base all'input
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)
Usa la macro:
set_my_variable("Foo")
message(STATUS ${my_output_variable})
stamperà
-- foo
mentre
set_my_variable("something else")
message(STATUS ${my_output_variable})
stamperà
-- bar
Macro per riempire una variabile di nome dato
macro(set_custom_variable _OUT_VAR)
set(${_OUT_VAR} "Foo")
endmacro(set_custom_variable)
Usalo con
set_custom_variable(my_foo)
message(STATUS ${my_foo})
che stamperà
-- Foo
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow