cmake
Funkcje i makra
Szukaj…
Uwagi
Główną różnicą między makrami a funkcjami jest to, że makra są oceniane w bieżącym kontekście, podczas gdy funkcje otwierają nowy zakres w bieżącym. Zatem zmienne zdefiniowane w funkcjach nie są znane po ich ocenie. Przeciwnie, zmienne w makrach są nadal definiowane po ocenie makra.
Proste makro do zdefiniowania zmiennej na podstawie danych wejściowych
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)
Użyj makra:
set_my_variable("Foo")
message(STATUS ${my_output_variable})
wydrukuje
-- foo
podczas
set_my_variable("something else")
message(STATUS ${my_output_variable})
wydrukuje
-- bar
Makro do wypełnienia zmiennej o podanej nazwie
macro(set_custom_variable _OUT_VAR)
set(${_OUT_VAR} "Foo")
endmacro(set_custom_variable)
Używaj go z
set_custom_variable(my_foo)
message(STATUS ${my_foo})
który wydrukuje
-- Foo
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow