38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
if(__GITFUNCTIONS_CMAKE__)
 | 
						|
    return()
 | 
						|
endif()
 | 
						|
set(__GITFUNCTIONS_CMAKE__ TRUE)
 | 
						|
 | 
						|
find_package(Git QUIET)
 | 
						|
 | 
						|
include(CMakeParseArguments)
 | 
						|
 | 
						|
if(GIT_FOUND)
 | 
						|
    function(git_run)
 | 
						|
	set(oneValueArgs OUTPUT_VAR DEFAULT)
 | 
						|
	set(multiValueArgs COMMAND)
 | 
						|
	cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 | 
						|
 | 
						|
	execute_process(COMMAND ${GIT_EXECUTABLE} ${GIT_RUN_COMMAND}
 | 
						|
	 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 | 
						|
	 RESULT_VARIABLE GIT_RESULTVAR
 | 
						|
	 OUTPUT_VARIABLE GIT_OUTVAR
 | 
						|
	 OUTPUT_STRIP_TRAILING_WHITESPACE
 | 
						|
	)
 | 
						|
 | 
						|
	if(GIT_RESULTVAR EQUAL 0)
 | 
						|
	    set(${GIT_RUN_OUTPUT_VAR} "${GIT_OUTVAR}" PARENT_SCOPE)
 | 
						|
	else()
 | 
						|
	    set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
 | 
						|
	    message(STATUS "Failed to run Git: ${GIT_OUTVAR}")
 | 
						|
	endif()
 | 
						|
    endfunction()
 | 
						|
else()
 | 
						|
    function(git_run)
 | 
						|
	set(oneValueArgs OUTPUT_VAR DEFAULT)
 | 
						|
	set(multiValueArgs COMMAND)
 | 
						|
	cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 | 
						|
	set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
 | 
						|
    endfunction(git_run)
 | 
						|
endif()
 |