execute_process( COMMAND git rev-parse --short HEAD RESULT_VARIABLE PARSE_RESULT OUTPUT_VARIABLE PARSE_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND git status --porcelain OUTPUT_VARIABLE STATUS_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT PARSE_RESULT) set(HASH "${PARSE_OUTPUT}") if(NOT ${STATUS_OUTPUT}) set(HASH "${HASH}*") endif() else() set(HASH "NOTFOUND") endif() configure_file("${TEMPLATE}" "${OUTPUT}" @ONLY)