packaging: Initial packaging
[platform/upstream/cmake.git] / Source / CMakeVersionSource.cmake
1 # Try to identify the current development source version.
2 set(CMake_VERSION_SOURCE "")
3 if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
4   find_program(GIT_EXECUTABLE NAMES git git.cmd)
5   mark_as_advanced(GIT_EXECUTABLE)
6   if(GIT_EXECUTABLE)
7     execute_process(
8       COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD
9       OUTPUT_VARIABLE head
10       OUTPUT_STRIP_TRAILING_WHITESPACE
11       WORKING_DIRECTORY ${CMake_SOURCE_DIR}
12       )
13     if(head)
14       set(CMake_VERSION_SOURCE "g${head}")
15       execute_process(
16         COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
17         WORKING_DIRECTORY ${CMake_SOURCE_DIR}
18         )
19       execute_process(
20         COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
21         OUTPUT_VARIABLE dirty
22         OUTPUT_STRIP_TRAILING_WHITESPACE
23         WORKING_DIRECTORY ${CMake_SOURCE_DIR}
24         )
25       if(dirty)
26         set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
27       endif()
28     endif()
29   endif()
30 elseif(EXISTS ${CMake_SOURCE_DIR}/CVS/Repository)
31   file(READ ${CMake_SOURCE_DIR}/CVS/Repository repo)
32   set(branch "")
33   if("${repo}" MATCHES "\\.git/")
34     string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
35   endif()
36   set(CMake_VERSION_SOURCE "cvs${branch}")
37 endif()