set(lnkname "${CMAKE_CURRENT_BINARY_DIR}/link") set(oldname "${CMAKE_CURRENT_BINARY_DIR}/input") set(newname "${CMAKE_CURRENT_BINARY_DIR}/output") file(WRITE "${lnkname}" "a") file(CREATE_LINK "${lnkname}" "${oldname}") file(COPY_FILE "${oldname}" "${newname}") file(READ "${newname}" new) if(NOT "${new}" STREQUAL "a") message(FATAL_ERROR "New name:\n ${newname}\ndoes not contain expected content 'a'.") endif()