math(EXPR) does not parse ~(exp_NOT) operator
unary operator ~ doesn't seem to be supported, although the document says it does.
Supported operators are +, -, *, /, %, |, &, ^, ~, <<, >>, and (...); they have the same meaning as in C code. https://gitlab.kitware.com/cmake/cmake/blob/master/Source/LexerParser/cmExprParser.y#L144