summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hector Martin2010-04-11 17:11:08 +0200
committerGravatar Hector Martin2010-04-11 17:18:50 +0200
commit3066c08a0db54729af639e128b4e9fe4fdc8c008 (patch)
treed1917b1b8ea7783bf4b566129088bab2258ef3cc
parent34524ac4e8075f0fc330759fd42b4d4873f27019 (diff)
downloadusbmuxd-3066c08a0db54729af639e128b4e9fe4fdc8c008.tar.gz
usbmuxd-3066c08a0db54729af639e128b4e9fe4fdc8c008.tar.bz2
Add automatic git versioning and tag for archives
-rw-r--r--CMakeLists.txt12
-rw-r--r--Modules/VersionTag.cmake13
-rwxr-xr-xModules/describe.sh17
3 files changed, 39 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb99b4c..7dbeec1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,16 @@
PROJECT(usbmuxd)
-set(USBMUXD_VERSION "1.0.0")
-set(LIBUSBMUXD_VERSION "${USBMUXD_VERSION}")
+cmake_minimum_required(VERSION 2.6)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/Modules/")
+
+include(VersionTag)
+
+set(USBMUXD_VERSION "${VERSION_TAG}")
+set(LIBUSBMUXD_VERSION "${VERSION_TAG}")
set(LIBUSBMUXD_SOVERSION "1")
-cmake_minimum_required(VERSION 2.6)
+message("-- Configuring usbmuxd v${VERSION_TAG}")
if(NOT DEFINED LIB_SUFFIX)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
diff --git a/Modules/VersionTag.cmake b/Modules/VersionTag.cmake
new file mode 100644
index 0000000..682ab3e
--- /dev/null
+++ b/Modules/VersionTag.cmake
@@ -0,0 +1,13 @@
+execute_process(
+ COMMAND "sh" "${CMAKE_SOURCE_DIR}/Modules/describe.sh"
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT_VARIABLE DESCRIBE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+if(DESCRIBE STREQUAL "")
+ set (VERSION_TAG "UNKNOWN")
+else()
+ string(REGEX REPLACE "^v" "" VERSION_TAG "${DESCRIBE}")
+endif()
+
diff --git a/Modules/describe.sh b/Modules/describe.sh
new file mode 100755
index 0000000..91730b8
--- /dev/null
+++ b/Modules/describe.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Check for git and a git repo.
+if head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ echo -n `git describe`
+
+ # Are there uncommitted changes?
+ git update-index --refresh --unmerged > /dev/null
+ git diff-index --quiet HEAD || echo -n -dirty
+else
+# Check for version tag
+ if [ -e version.tag ]; then
+ echo -n `cat version.tag`
+ fi
+fi
+
+echo