CMake if not short circuit
CMake if() is NOT short circuit. This requires care with undefined variables, which we show by example.
# syntax error if "undef1" is undefined
# if(1 AND ${undef1})
# endif()
if(0 OR undef2)
message(FATAL_ERROR "unexpected behavior with undefined variable evaluated as string.")
endif()