From af0e1cd4cbb7029de0877de9db72ba37085abff2 Mon Sep 17 00:00:00 2001
From: Tobias Hunger <tobias.hunger@gmail.com>
Date: Fri, 8 Jul 2016 11:40:16 +0200
Subject: Make CMake version dirty state available to code

Set `CMake_VERSION_IS_DIRTY` to 1 or 0 depending on whether the CMake
source tree is considered dirty or not.
---
 Source/CMakeVersionCompute.cmake | 4 ++++
 Source/CMakeVersionSource.cmake  | 4 +++-
 Source/cmVersionConfig.h.in      | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Source/CMakeVersionCompute.cmake b/Source/CMakeVersionCompute.cmake
index 806e987..3bdcfd6 100644
--- a/Source/CMakeVersionCompute.cmake
+++ b/Source/CMakeVersionCompute.cmake
@@ -3,6 +3,7 @@ include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake)
 
 # Releases define a small patch level.
 if("${CMake_VERSION_PATCH}" VERSION_LESS 20000000)
+  set(CMake_VERSION_IS_DIRTY 0)
   set(CMake_VERSION_IS_RELEASE 1)
   set(CMake_VERSION_SOURCE "")
 else()
@@ -22,3 +23,6 @@ endif()
 if(CMake_VERSION_SUFFIX)
   set(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SUFFIX})
 endif()
+if(CMake_VERSION_IS_DIRTY)
+  set(CMake_VERSION ${CMake_VERSION}-dirty)
+endif()
diff --git a/Source/CMakeVersionSource.cmake b/Source/CMakeVersionSource.cmake
index 888f557..bc5975e 100644
--- a/Source/CMakeVersionSource.cmake
+++ b/Source/CMakeVersionSource.cmake
@@ -23,7 +23,9 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
         WORKING_DIRECTORY ${CMake_SOURCE_DIR}
         )
       if(dirty)
-        set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
+        set(CMake_VERSION_IS_DIRTY 1)
+      else()
+        set(CMake_VERSION_IS_DIRTY 0)
       endif()
     endif()
   endif()
diff --git a/Source/cmVersionConfig.h.in b/Source/cmVersionConfig.h.in
index af5c57b..92abfbe 100644
--- a/Source/cmVersionConfig.h.in
+++ b/Source/cmVersionConfig.h.in
@@ -13,4 +13,5 @@
 #define CMake_VERSION_MINOR @CMake_VERSION_MINOR@
 #define CMake_VERSION_PATCH @CMake_VERSION_PATCH@
 #define CMake_VERSION_SUFFIX "@CMake_VERSION_SUFFIX@"
+#define CMake_VERSION_IS_DIRTY @CMake_VERSION_IS_DIRTY@
 #define CMake_VERSION "@CMake_VERSION@"
-- 
cgit v0.12