| # Give Git access to the real home directory to get user's settings. |
| if(DEFINED ENV{CTEST_REAL_HOME}) |
| set(ENV{HOME} "$ENV{CTEST_REAL_HOME}") |
| endif() |
| |
| file(GLOB known_files |
| "${CMake_SOURCE_DIR}/Tests/Java/hs_err_pid*.log" |
| "${CMake_SOURCE_DIR}/Tests/JavaExportImport/InstallExport/hs_err_pid*.log" |
| "${CMake_SOURCE_DIR}/Tests/JavaNativeHeaders/hs_err_pid*.log" |
| ) |
| if(known_files) |
| file(REMOVE ${known_files}) |
| endif() |
| |
| execute_process( |
| COMMAND "${GIT_EXECUTABLE}" status |
| WORKING_DIRECTORY "${CMake_SOURCE_DIR}" |
| OUTPUT_VARIABLE output |
| ERROR_VARIABLE output |
| RESULT_VARIABLE result |
| ) |
| string(REPLACE "\n" "\n " output " ${output}") |
| if(NOT result EQUAL 0) |
| message(FATAL_ERROR "'git status' failed (${result}):\n${output}") |
| endif() |
| |
| if(output MATCHES "\n[ \t#]*(Changes |new file:|modified:|Untracked )") |
| message(FATAL_ERROR "The source tree is not clean. 'git status' reports:\n${output}") |
| endif() |
| |
| message(STATUS "The source tree is clean.") |