Macros
类似于 C 语言中的宏, 就是用于代码展开. 不会创建新的作用域, 是在当前作用域展示并执行的.
可以用宏来定义有返回值的操作, 其它情况下, 都应该定义成函数.
macro(FACTORIAL n)
set(FACTORIAL_PRODUCT 1)
foreach(i RANGE 1 ${n})
math(EXPR FACTORIAL_PRODUCT "${FACTORIAL_PRODUCT} * ${i}")
endforeach()
endmacro()
FACTORIAL(10)
message("10! = ${FACTORIAL_PRODUCT}")