project(${RunCMake_TEST} LANGUAGES C) check_ipo_supported(RESULT result OUTPUT output) string(COMPARE EQUAL "${result}" "" is_empty) if(is_empty) message(FATAL_ERROR "Result variable is empty") endif() string(COMPARE EQUAL "${result}" "YES" is_yes) string(COMPARE EQUAL "${result}" "NO" is_no) if(is_yes) # Compiler supports IPO elseif(is_no) # Compiler doesn't support IPO, output should not be empty. string(COMPARE EQUAL "${output}" "" is_empty) if(is_empty) message(FATAL_ERROR "Output is empty") endif() else() message(FATAL_ERROR "Unexpected result: ${result}") endif()