From 6a4b83bc43019a37fd6b1f835f59a86473950daa Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 19 Dec 2008 11:11:20 +0100 Subject: [PATCH] Added wmakePrintBuild for determining the build version - the $WM_PROJECT_DIR/.build file is automatically updated. This file is (and must be) ignored by git. --- .gitignore | 3 ++ wmake/rules/General/version | 8 +--- wmake/wmakePrintBuild | 95 +++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 6 deletions(-) create mode 100755 wmake/wmakePrintBuild diff --git a/.gitignore b/.gitignore index 4a7188cdfb..96c3093b71 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,9 @@ doc/[Dd]oxygen/man *.tar.gz *.tgz +# ignore the persistent .build tag in the main directory +/.build + # ignore .timeStamp in the main directory /.timeStamp diff --git a/wmake/rules/General/version b/wmake/rules/General/version index e1f0bc6387..0d74179f8c 100644 --- a/wmake/rules/General/version +++ b/wmake/rules/General/version @@ -1,14 +1,10 @@ .SUFFIXES: .Cver # -# update version string from git, or just use the WM_PROJECT_VERSION -# note: could also add --abbrev=32 for maximum resolution +# update version string # Cvertoo = \ - sed s/WM_PROJECT_VERSION/\"$(shell \ - git describe --always --tags 2>/dev/null || \ - echo $(WM_PROJECT_VERSION) \ - )\"/ $$SOURCE > $*.C; \ + sed s/WM_PROJECT_VERSION/\"$(shell wmakePrintBuild)\"/ $$SOURCE > $*.C; \ $(CC) $(c++FLAGS) -c $*.C -o $@ .Cver.dep: diff --git a/wmake/wmakePrintBuild b/wmake/wmakePrintBuild new file mode 100755 index 0000000000..61e9b80790 --- /dev/null +++ b/wmake/wmakePrintBuild @@ -0,0 +1,95 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------- +# License +# This file is part of OpenFOAM. +# +# OpenFOAM 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. +# +# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# wmakePrintBuild +# +# Description +# Print the version used when building the project. +# +#------------------------------------------------------------------------------ +Script=${0##*/} + +usage() { + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat</dev/null) + +# +# building under git +# note: could also use --abbrev=32 for maximum resolution +# +version=$(git describe --always --tags 2>/dev/null) +if [ $? -eq 0 ] +then + # update persistent build tag (this could be made optional or removed) + if [ "$version" != "$previous" ] + then + if [ -w "$build" -a \( -w "$WM_PROJECT_DIR" -o ! -e "$build" \) ] + then + echo $version >| "$build" 2>/dev/null + fi + fi + + echo $version + +elif [ -n "$previous" ] +then + + # use previous build tag + echo $previous + +else + + # fallback to WM_PROJECT_VERSION + echo ${WM_PROJECT_VERSION:-unknown} + +fi + +#------------------------------------------------------------------------------