The documentation states:
Compound conditions are evaluated in the following order of precedence: […] Then the boolean operators in the order NOT, AND, and finally OR.
But the following prints “FALSE”:
cmake_minimum_required(VERSION 3.22) project(Test) if(YES OR NO AND NO) message("TRUE") else() message("FALSE") endif()
So the expression isn’t being evaluated as
YES OR (NO AND NO). Could someone explain this surprising behavior?