cmake
Funktioner och makron
Sök…
Anmärkningar
Huvudskillnaden mellan makron och funktioner är att makron utvärderas inom det aktuella sammanhanget, medan funktioner öppnar ett nytt omfång inom det nuvarande. Således är variabler definierade inom funktioner inte kända efter att funktionen har utvärderats. Tvärtom, variabler inom makron definieras fortfarande efter att makroen har utvärderats.
Enkel makro för att definiera en variabel baserad på 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)
Använd makro:
set_my_variable("Foo")
message(STATUS ${my_output_variable})
kommer att skriva ut
-- foo
medan
set_my_variable("something else")
message(STATUS ${my_output_variable})
kommer att skriva ut
-- bar
Makro för att fylla en variabel med förnamnet
macro(set_custom_variable _OUT_VAR)
set(${_OUT_VAR} "Foo")
endmacro(set_custom_variable)
Använd den med
set_custom_variable(my_foo)
message(STATUS ${my_foo})
som kommer att skriva ut
-- Foo
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow