add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif (CMAKE_GENERATOR MATCHES "NMake Makefiles")
+
+# Add special Git hooks
+if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
+ configure_file("${CMAKE_SOURCE_DIR}/GitHooks/pre-commit.in"
+ "${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit")
+endif()
--- /dev/null
+#!/bin/bash
+
+function isDOSFile
+{
+ local FILENAME="$1"
+ file "$FILENAME" | grep -q "CRLF line terminators"
+}
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+ against=HEAD
+else
+ # Initial commit: diff against an empty tree object
+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+# If you want to allow non-ASCII filenames set this variable to true.
+allownonascii=$(git config hooks.allownonascii)
+
+# Redirect output to stderr.
+exec 1>&2
+
+# Cross platform projects tend to avoid non-ASCII filenames; prevent
+# them from being added to the repository. We exploit the fact that the
+# printable range starts at the space character and ends with tilde.
+if [ "$allownonascii" != "true" ] &&
+ # Note that the use of brackets around a tr range is ok here, (it's
+ # even required, for portability to Solaris 10's /usr/bin/tr), since
+ # the square bracket bytes happen to fall in the designated range.
+ test $(git diff --cached --name-only --diff-filter=A -z $against |
+ LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
+then
+ cat <<\EOF
+Error: Attempt to add a non-ASCII file name.
+
+This can cause problems if you want to work with people on other platforms.
+
+To be portable it is advisable to rename the file.
+
+If you know what you are doing you can disable this check using:
+
+ git config hooks.allownonascii true
+EOF
+ exit 1
+fi
+
+FOUND=0
+# If there are whitespace errors, print the offending file names and fail.
+if [ "$(exec git diff-index --check --cached $against -- )" != "" ]
+then
+ FOUND=1
+fi
+
+# Find files with DOS line endings
+for FILE in $(exec git diff --name-only --cached $against -- | sed '/^[+-]/d' | sed -r 's/:[0-9]+:.*//' | uniq) ; do
+ isDOSFile "$FILE"
+ if (( $? == 0 ))
+ then
+ echo "ERROR: \"$FILE\" has DOS line endings" >&2
+ FOUND=1
+ fi
+done
+
+exit $FOUND