簡單巨集用於根據輸入定義變數

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)

使用巨集:

set_my_variable("Foo")
message(STATUS ${my_output_variable})

將列印

-- foo

set_my_variable("something else")
message(STATUS ${my_output_variable})

將列印

-- bar