cgal/Installation/cmake/modules/CGAL_SCM.cmake

49 lines
1.6 KiB
CMake

# Common settings for CGAL cmake scripts
if( NOT CGAL_SCM_FILE_INCLUDED )
set(CGAL_SCM_FILE_INCLUDED 1 )
#message ("-----CSD: ${CMAKE_SOURCE_DIR}")
set(GIT_PARENT_DIR "${CMAKE_SOURCE_DIR}")
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
#message ("-----GD: ${GIT_DIR}")
if (EXISTS "${GIT_DIR}")
set( CGAL_SCM_NAME "git" )
else()
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
#message ("-----GPD1: ${GIT_PARENT_DIR}")
#message ("-----PPD1: ${GIT_PREVIOUS_PARENT}")
if( "${GIT_PARENT_DIR}" STREQUAL "${GIT_PREVIOUS_PARENT}" )
# We have reached the root directory, we are not in git
set(_refspecvar "GITDIR-NOTFOUND")
set(_hashvar "GITDIR-NOTFOUND")
set ( CGAL_SCM_NAME "" )
break()
else()
set( GIT_DIR "${GIT_PARENT_DIR}/.git" )
set( CGAL_SCM_NAME "git" )
endif()
endwhile()
endif()
#message ("====GPD1: ${GIT_PARENT_DIR}")
if ( "${CGAL_SCM_NAME}" STREQUAL "git" )
#message ("====GPD2: ${GIT_PARENT_DIR}")
find_program(GIT_EXECUTABLE git DOC "git command line client")
EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} --git-dir=${GIT_PARENT_DIR}/.git symbolic-ref HEAD
OUTPUT_VARIABLE CGAL_GIT_BRANCH_OUT
OUTPUT_STRIP_TRAILING_WHITESPACE)
string ( REGEX REPLACE "refs/heads/" "" CGAL_GIT_BRANCH ${CGAL_GIT_BRANCH_OUT})
# message( STATUS "Git branch ${CGAL_GIT_BRANCH}")
set ( CGAL_SCM_BRANCH_NAME "${CGAL_GIT_BRANCH}" )
endif()
endif()