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()