• Brad King's avatar
    Check*: Allow result variables to contain regex special characters (#14923) · 4f2fcce4
    Brad King authored
    Prior to the existence of the if(DEFINED) condition, many of our Check
    modules implemented the condition with a hack that takes advantage of
    the auto-dereference behavior of the if() command to detect if a
    variable is defined.  The hack has the form:
    
     if("${VAR} MATCHES "^${VAR}$")
    
    where "${VAR}" is a macro argument reference.  However, this does not
    work when the variable named in the macro argument contains characters
    that have special meaning in regular expressions, such as '+'.  Run the
    command
    
     git grep -E 'if\("\$\{.*\}" MATCHES "\^\$\{.*\}\$"\)' -- Modules/Check*
    
    to identify lines with this problem.  Use if(NOT DEFINED) instead.
    4f2fcce4
CheckCSourceCompiles.cmake 3.73 KB