function(BuildTargetInSubProject P T E) try_compile(RESULTVAR ${CMAKE_CURRENT_BINARY_DIR}/subproject ${CMAKE_CURRENT_SOURCE_DIR}/subproject ${P} ${T} OUTPUT_VARIABLE O) if(E AND RESULTVAR) message(STATUS "${P} target ${T} succeeded as expected") elseif(E AND NOT RESULTVAR) message(FATAL_ERROR "${P} target ${T} failed but should have succeeded. Output:${O}") elseif(NOT E AND NOT RESULTVAR) message(STATUS "${P} target ${T} failed as expected") elseif(NOT E AND RESULTVAR) message(FATAL_ERROR "${P} target ${T} succeeded but should have failed. Output:${O}") endif() endfunction()