#!/usr/bin/cmake -P
## Copyright(c) 2017-2020, Intel Corporation
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions are met:
##
## * Redistributions of source code must retain the above copyright notice,
## this list of conditions and the following disclaimer.
## * Redistributions in binary form must reproduce the above copyright notice,
## this list of conditions and the following disclaimer in the documentation
## and/or other materials provided with the distribution.
## * Neither the name of Intel Corporation nor the names of its contributors
## may be used to endorse or promote products derived from this software
## without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
## POSSIBILITY OF SUCH DAMAGE.
# Exports
#
# * OPAE_GIT_EXECUTABLE
# * OPAE_GIT_COMMIT_HASH
# * OPAE_GIT_SRC_TREE_DIRTY
find_program(OPAE_GIT_EXECUTABLE git)
if(EXISTS ${OPAE_GIT_EXECUTABLE})
# Find the abbreviated git commit hash.
execute_process(COMMAND ${OPAE_GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE OPAE_GIT_COMMIT_HASH
RESULT_VARIABLE OPAE_GIT_LOG_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT ${OPAE_GIT_LOG_RESULT} EQUAL 0)
set(OPAE_GIT_COMMIT_HASH unknown)
endif()
# Determine whether the working tree has changes.
execute_process(COMMAND ${OPAE_GIT_EXECUTABLE} diff --stat
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE OPAE_GIT_DIFF_OUTPUT
RESULT_VARIABLE OPAE_GIT_DIFF_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT ${OPAE_GIT_DIFF_RESULT} EQUAL 0)
set(OPAE_GIT_SRC_TREE_DIRTY 0)
else()
if(OPAE_GIT_DIFF_OUTPUT)
set(OPAE_GIT_SRC_TREE_DIRTY 1)
else()
set(OPAE_GIT_SRC_TREE_DIRTY 0)
endif()
endif()
else(EXISTS ${OPAE_GIT_EXECUTABLE})
set(OPAE_GIT_COMMIT_HASH unknown)
set(OPAE_GIT_SRC_TREE_DIRTY 0)
endif(EXISTS ${OPAE_GIT_EXECUTABLE})