[dss-commits] r8752 - in dss/trunk: . tools
dss-commits at forum.digitalstrom.org
dss-commits at forum.digitalstrom.org
Wed Sep 9 13:10:08 CEST 2009
Author: jwinkelmann
Date: 2009-09-09 13:10:08 +0200 (Wed, 09 Sep 2009)
New Revision: 8752
Added:
dss/trunk/tools/dss_gen_version_unix.sh
Modified:
dss/trunk/CMakeLists.txt
dss/trunk/config.h.in
dss/trunk/main.cpp
Log:
Include svn revision in version info (fixes #114)
Modified: dss/trunk/CMakeLists.txt
===================================================================
--- dss/trunk/CMakeLists.txt 2009-09-09 11:10:05 UTC (rev 8751)
+++ dss/trunk/CMakeLists.txt 2009-09-09 11:10:08 UTC (rev 8752)
@@ -8,6 +8,20 @@
SET(WITH_DATADIR "data/" CACHE FILEPATH "Data directory")
ENDIF(NOT WITH_DATADIR)
+SET(DSS_GEN_VERSION_CMD "")
+IF(WIN32)
+ SET(DSS_GEN_VERSION_CMD "tools/dss_gen_version_win32.bat")
+ENDIF(WIN32)
+IF(UNIX)
+ SET(DSS_GEN_VERSION_CMD "tools/dss_gen_version_unix.sh")
+ENDIF(UNIX)
+
+ADD_CUSTOM_TARGET(build_info.h ALL
+ COMMAND ${DSS_GEN_VERSION_CMD} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+)
+ADD_DEFINITIONS(-DHAVE_BUILD_INFO_H)
+
SET(REQUIRED_LIBS)
INCLUDE (${CMAKE_ROOT}/Modules/FindLibXml2.cmake)
Modified: dss/trunk/config.h.in
===================================================================
--- dss/trunk/config.h.in 2009-09-09 11:10:05 UTC (rev 8751)
+++ dss/trunk/config.h.in 2009-09-09 11:10:08 UTC (rev 8752)
@@ -13,6 +13,7 @@
#cmakedefine WITH_DATADIR "${WITH_DATADIR}"
#cmakedefine WITH_BONJOUR
#cmakedefine WITH_GCOV
+#cmakedefine RELEASE_BUILD
#endif /* DIGITAL_STROM_SERVER_CONFIG_H */
Modified: dss/trunk/main.cpp
===================================================================
--- dss/trunk/main.cpp 2009-09-09 11:10:05 UTC (rev 8751)
+++ dss/trunk/main.cpp 2009-09-09 11:10:08 UTC (rev 8752)
@@ -26,6 +26,10 @@
#include "config.h"
#endif
+#ifdef HAVE_BUILD_INFO_H
+ #include "build_info.h"
+#endif
+
#include "core/base.h"
#include "core/dss.h"
#include "core/logger.h"
@@ -48,7 +52,6 @@
#include <iostream>
#define DSS_VERSION "0.4a1"
-#define DSS_RELEASED_AT "20090605"
using namespace std;
namespace po = boost::program_options;
@@ -68,7 +71,17 @@
return 1;
}
- cout << "DSS v" << DSS_VERSION << " released at " << DSS_RELEASED_AT << endl;
+#ifdef RELEASE_BUILD
+ cout << "DSS v" << DSS_VERSION << " released at " << DSS_BUILD_DATE << endl;
+#else
+ cout << "DSS version info:\n";
+ cout << " RCS revision: " << DSS_RCS_REVISION << "\n";
+ cout << " RCS url: " << DSS_RCS_URL << "\n";
+ cout << " build date: " << DSS_BUILD_DATE << "\n";
+ cout << " build user: " << DSS_BUILD_USER << "\n";
+ cout << " build host: " << DSS_BUILD_HOST << "\n";
+ cout << endl;
+#endif
// make sure timezone gets set
tzset();
Added: dss/trunk/tools/dss_gen_version_unix.sh
===================================================================
--- dss/trunk/tools/dss_gen_version_unix.sh (rev 0)
+++ dss/trunk/tools/dss_gen_version_unix.sh 2009-09-09 11:10:08 UTC (rev 8752)
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+###
+## Generate a build info header; unix version
+#
+# Johannes Winkelmann, johannes.winkelmann at aizo.com
+
+BASEDIR=$1
+TARGETDIR=$2
+BUILD_INFO=build_info.h
+
+if [ -z "$TARGETDIR" ] ; then
+ echo "Usage: $(basename $0) <base directory> <build_info target_dir>"
+ exit 1
+fi
+
+rcs_rev="undefined"
+rcs_root="undefined"
+if [ -n "$(which svn)" ]; then
+ if [ -d $BASEDIR/.svn ]; then
+ rcs_rev=$(svn info $BASEDIR|grep ^Revision:| sed -e 's|Revision:\s*||')
+ rcs_root=$(svn info $BASEDIR|grep ^URL:|sed -e 's|URL:\s*||')
+ rcs_st=$(svn st $BASEDIR|grep ^M)
+ if [ -n "$rcs_st" ]; then
+ rcs_rev="$rcs_rev-dirty"
+ fi
+ elif [ -d $BASEDIR/.git ]; then
+ if [ -d $BASEDIR/.git/svn ]; then
+ rcs_rev=svn-$(git svn info|grep ^Revision:| sed -e 's|Revision:\s*||')+
+ rcs_root=$(git svn info|grep ^URL:|sed -e 's|URL:\s*||')
+ else
+ rcs_root=$(git branch|grep ^*)
+ fi
+ rcs_rev="${rcs_rev}git:$(git rev-parse HEAD)"
+ rcs_st=$(git status $BASEDIR|grep modified:)
+ if [ -n "$rcs_st" ]; then
+ rcs_rev="$rcs_rev-dirty"
+ fi
+ elif [ -d $BASEDIR/.hg ]; then
+ rcs_rev=$(hg identify) # already contains the '+' marked when modified
+ rcs_root=$(hg branch)
+ fi
+fi
+
+
+echo "/* $BUILD_INFO generated by $(basename $0) */" \
+ > $TARGETDIR/$BUILD_INFO
+echo "/* do not edit, modifications will be overwritten */" \
+ >> $TARGETDIR/$BUILD_INFO
+
+
+echo "#define DSS_RCS_REVISION \"$rcs_rev\"" >> $TARGETDIR/$BUILD_INFO
+echo "#define DSS_RCS_URL \"$rcs_root\"" >> $TARGETDIR/$BUILD_INFO
+echo "#define DSS_BUILD_USER \"$(whoami)\"" >> $TARGETDIR/$BUILD_INFO
+echo "#define DSS_BUILD_HOST \"$(hostname)\"" >> $TARGETDIR/$BUILD_INFO
+echo "#define DSS_BUILD_DATE \"$(date)\"" >> $TARGETDIR/$BUILD_INFO
Property changes on: dss/trunk/tools/dss_gen_version_unix.sh
___________________________________________________________________
Added: svn:executable
+ *
More information about the dss-commits
mailing list