commit dbee2e6adc55951f5ee78f1f7271ef6264c46b66
Author: Nick Østergaard <oe.nick@gmail.com>
Date:   Sat Jul 11 20:35:46 2015 +0200

    cmake v6 patch

diff --git a/CMakeModules/CreateGitVersionHeader.cmake b/CMakeModules/CreateGitVersionHeader.cmake
new file mode 100644
index 0000000..42cf4b4
--- /dev/null
+++ b/CMakeModules/CreateGitVersionHeader.cmake
@@ -0,0 +1,105 @@
+#
+#  This program source code file is part of KICAD, a free EDA CAD application.
+#
+#  Copyright (C) 2010 Wayne Stambaugh <stambaughw@verizon.net>
+#  Copyright (C) 2010-2015 Kicad Developers, see AUTHORS.txt for contributors.
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, you may find one here:
+#  http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#  or you may search the http://www.gnu.org website for the version 2 license,
+#  or you may write to the Free Software Foundation, Inc.,
+#  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+#
+
+macro( create_git_version_header _git_src_path )
+    # If bzr is not found or an error occurs using the git commands to determine the repo
+    # version, set the build version string to "no-git"
+    set( KICAD_BUILD_VERSION "no-git" )
+
+    # Include Git support to automagically create version header file.
+    find_package( Git )
+
+    if( GIT_FOUND )
+        set( _Git_SAVED_LC_ALL "$ENV{LC_ALL}" )
+        set( ENV{LC_ALL} C )
+
+        # Get latest commit hash
+        execute_process(
+            COMMAND
+            ${GIT_EXECUTABLE} --no-pager log -1 HEAD
+            --pretty=format:%H
+            WORKING_DIRECTORY ${_git_src_path}
+            OUTPUT_VARIABLE _git_LONG_HASH
+            ERROR_VARIABLE _git_log_error
+            RESULT_VARIABLE _git_log_result
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+        if( ${_git_log_result} EQUAL 0 )
+            execute_process(
+            COMMAND
+            ${GIT_EXECUTABLE} --no-pager log -1 HEAD
+            --pretty=format:%h
+            WORKING_DIRECTORY ${_git_src_path}
+            OUTPUT_VARIABLE _git_SHORT_HASH
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+            execute_process(
+            COMMAND
+            ${GIT_EXECUTABLE} --no-pager log -1 HEAD
+            --pretty=format:%cn
+            WORKING_DIRECTORY ${_git_src_path}
+            OUTPUT_VARIABLE _git_LAST_COMITTER
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+            execute_process(
+            COMMAND
+            ${GIT_EXECUTABLE} --no-pager log -1 HEAD
+            --pretty=format:%cd --date=short
+            WORKING_DIRECTORY ${_git_src_path}
+            OUTPUT_VARIABLE _git_LAST_CHANGE_LOG
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+            execute_process(
+            COMMAND
+            ${GIT_EXECUTABLE} rev-list HEAD --count
+            --first-parent
+            WORKING_DIRECTORY ${_git_src_path}
+            OUTPUT_VARIABLE _git_SERIAL
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+            message(STATUS "Git hash: ${_git_LONG_HASH}")
+
+            if( ${_git_log_result} EQUAL 0 )
+                string( REGEX REPLACE "^(.*\n)?revno: ([^ \n]+).*"
+                        "\\2" Kicad_REPO_REVISION "BZR ${_git_SERIAL}, Git ${_git_SHORT_HASH}" )
+                string( REGEX REPLACE "^(.*\n)?committer: ([^\n]+).*"
+                        "\\2" Kicad_REPO_LAST_CHANGED_AUTHOR "${_git_LAST_COMITTER}")
+                string( REGEX REPLACE "^(.*\n)?timestamp: [a-zA-Z]+ ([^ \n]+).*"
+                        "\\2" Kicad_REPO_LAST_CHANGED_DATE "${_git_LAST_CHANGE_LOG}")
+            endif()
+        endif()
+
+        set( ENV{LC_ALL} ${_Git_SAVED_LC_ALL} )
+    endif( GIT_FOUND )
+
+    # Check to make sure 'git' command did not fail.  Otherwise fallback
+    # to "no-git" as the revision.
+    if( Kicad_REPO_LAST_CHANGED_DATE )
+        string( REGEX REPLACE "^([0-9]+)\\-([0-9]+)\\-([0-9]+)" "\\1-\\2-\\3"
+                _kicad_git_date ${Kicad_REPO_LAST_CHANGED_DATE} )
+        set( KICAD_BUILD_VERSION "(${_kicad_git_date} ${Kicad_REPO_REVISION})" )
+    endif()
+
+    set( KICAD_BUILD_VERSION ${KICAD_BUILD_VERSION} )
+endmacro()
diff --git a/CMakeModules/WriteVersionHeader.cmake b/CMakeModules/WriteVersionHeader.cmake
index 9637546..c08c61e 100644
--- a/CMakeModules/WriteVersionHeader.cmake
+++ b/CMakeModules/WriteVersionHeader.cmake
@@ -23,17 +23,23 @@
 #
 
 # Automagically create version header file if the version string was not defined during
-# the build configuration.  If CreateBzrVersionHeader cannot determine the current repo,
-# version, a version.h file is still created with KICAD_BUILD_VERSION set to "no-bzr".
+# the build configuration.  If CreateBzrVersionHeader or CreateGitVersionHeader cannot
+# determine the current repo version, a version.h file is still created with
+# KICAD_BUILD_VERSION set to "no-vcs-found".
 if( NOT KICAD_BUILD_VERSION )
     set( _wvh_version_str "no-vcs-found" )
 
-    # If the code is managed by Bazaar, used bzr to determine the version string.
+    # Detect the appropiate VCS and set the version string.
     if( EXISTS "${SRC_PATH}/.bzr" )
         message( STATUS "Using Bazaar to determine build version string." )
         include( ${CMAKE_MODULE_PATH}/CreateBzrVersionHeader.cmake )
         create_bzr_version_header( ${SRC_PATH} )
         set( _wvh_version_str ${KICAD_BUILD_VERSION} )
+    elseif( EXISTS "${SRC_PATH}/.git" )
+        message( STATUS "Using Git to determine build version string." )
+        include( ${CMAKE_MODULE_PATH}/CreateGitVersionHeader.cmake )
+        create_git_version_header( ${SRC_PATH} )
+        set( _wvh_version_str ${KICAD_BUILD_VERSION} )
     endif()
 else()
     set( _wvh_version_str ${KICAD_BUILD_VERSION} )
