From 1486b2a04f8347c999fd382ee003f5ef65ad22a0 Mon Sep 17 00:00:00 2001 From: Underground78 Date: Mon, 7 Oct 2013 23:21:45 +0200 Subject: [MPC-HC] Version number: Add a "git describe based" commit number to identify the vanilla LAV Filters we are based on. This way if we distribute LAV Filters version X.Y.Z.N, it means that our custom build is based on: - the stable version X.Y.Z, - with N official patches (which will be part of next official LAV Filters build), - and some custom non-official patches which are here to improve the integration in MPC-HC. --- .gitignore | 2 ++ common/DSUtilLite/DSUtilLite.vcxproj | 6 ++++ common/includes/version.h | 6 ++-- update_version.bat | 49 ++++++++++++++++++++++++++ version.sh | 67 ++++++++++++++++++++++++++++++++++++ 5 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 update_version.bat create mode 100644 version.sh diff --git a/.gitignore b/.gitignore index ec0cbbde..c49d601f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ /ipch /bin_* + +/common/includes/version_rev.h diff --git a/common/DSUtilLite/DSUtilLite.vcxproj b/common/DSUtilLite/DSUtilLite.vcxproj index b1f438d7..28af7355 100644 --- a/common/DSUtilLite/DSUtilLite.vcxproj +++ b/common/DSUtilLite/DSUtilLite.vcxproj @@ -62,11 +62,17 @@ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + + ..\..\update_version.bat + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + + ..\..\update_version.bat + diff --git a/common/includes/version.h b/common/includes/version.h index 42ca47f4..e1d22c19 100644 --- a/common/includes/version.h +++ b/common/includes/version.h @@ -8,6 +8,8 @@ #define LAV_VIDEO "LAV Video Decoder" #define LAV_SPLITTER "LAV Splitter" +#include "version_rev.h" + ///////////////////////////////////////////////////////// #ifndef ISPP_INCLUDED @@ -24,8 +26,8 @@ #define DO_MAKE_STR(x) #x #define MAKE_STR(x) DO_MAKE_STR(x) -#define LAV_VERSION LAV_VERSION_MAJOR.LAV_VERSION_MINOR.LAV_VERSION_REVISION -#define LAV_VERSION_TAG LAV_VERSION_MAJOR, LAV_VERSION_MINOR, LAV_VERSION_REVISION +#define LAV_VERSION LAV_VERSION_MAJOR.LAV_VERSION_MINOR.LAV_VERSION_REVISION.LAV_VERSION_COMMIT_NUM +#define LAV_VERSION_TAG LAV_VERSION_MAJOR, LAV_VERSION_MINOR, LAV_VERSION_REVISION, LAV_VERSION_COMMIT_NUM #define LAV_VERSION_STR MAKE_STR(LAV_VERSION) diff --git a/update_version.bat b/update_version.bat new file mode 100644 index 00000000..1508e72c --- /dev/null +++ b/update_version.bat @@ -0,0 +1,49 @@ +@ECHO OFF +REM (C) 2013 see Authors.txt +REM +REM This file is part of MPC-HC. +REM +REM MPC-HC is free software; you can redistribute it and/or modify +REM it under the terms of the GNU General Public License as published by +REM the Free Software Foundation; either version 3 of the License, or +REM (at your option) any later version. +REM +REM MPC-HC is distributed in the hope that it will be useful, +REM but WITHOUT ANY WARRANTY; without even the implied warranty of +REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +REM GNU General Public License for more details. +REM +REM You should have received a copy of the GNU General Public License +REM along with this program. If not, see . + + +SETLOCAL + +PUSHD %~dp0 + +IF EXIST "..\..\..\..\build.user.bat" ( + CALL "..\..\..\..\build.user.bat" +) ELSE ( + IF DEFINED GIT (SET MPCHC_GIT=%GIT%) + IF DEFINED MSYS (SET MPCHC_MSYS=%MSYS%) ELSE (GOTO MissingVar) +) + +SET PATH=%MPCHC_MSYS%\bin;%MPCHC_GIT%\cmd;%PATH% +FOR %%G IN (bash.exe) DO (SET FOUND=%%~$PATH:G) +IF NOT DEFINED FOUND GOTO MissingVar + +bash.exe ./version.sh + + +:END +POPD +ENDLOCAL +EXIT /B + + +:MissingVar +ECHO Not all build dependencies were found. +ECHO. +ECHO See "..\..\..\..\docs\Compilation.txt" for more information. +ENDLOCAL +EXIT /B 1 diff --git a/version.sh b/version.sh new file mode 100644 index 00000000..57fd0870 --- /dev/null +++ b/version.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# (C) 2013 see Authors.txt +# +# This file is part of MPC-HC. +# +# MPC-HC 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 3 of the License, or +# (at your option) any later version. +# +# MPC-HC 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 this program. If not, see . + +versionfile_fixed="./common/includes/version.h" +versionfile="./common/includes/version_rev.h" + +# Read major, minor and patch version numbers from static version.h file +while read -r _ var value; do + if [[ $var == LAV_VERSION_MAJOR ]]; then + ver_fixed_major=$value + elif [[ $var == LAV_VERSION_MINOR ]]; then + ver_fixed_minor=$value + elif [[ $var == LAV_VERSION_REVISION ]]; then + ver_fixed_patch=$value + fi +done < "$versionfile_fixed" +ver_fixed="${ver_fixed_major}.${ver_fixed_minor}.${ver_fixed_patch}" +echo "Version: $ver_fixed" + +# If we are not inside a git repo use hardcoded values +if ! git rev-parse --git-dir > /dev/null 2>&1; then + hash=0000000 + ver=0 + ver_additional= + echo "Warning: Git not available or not a git repo. Using dummy values for hash and version number." +else + # Get information about the current version + describe=$(git describe --long `git log --grep="\[MPC-HC\] Use our own ffmpeg clone repository\." --pretty=%H`~1) + echo "Describe: $describe" + + # Get the abbreviated hash of the current changeset + hash=${describe##*-g} + + # Get the number changesets since the last tag + ver=${describe#*-} + ver=${ver%-*} + + echo "Hash: $hash" + if ! git diff-index --quiet HEAD; then + echo "Revision: $ver (Local modifications found)" + else + echo "Revision: $ver" + fi +fi + +version_info+="#define LAV_VERSION_COMMIT_NUM $ver"$'\n' + +# Update version_rev.h if it does not exist, or if version information was changed. +if [[ ! -f "$versionfile" ]] || [[ "$version_info" != "$(<"$versionfile")" ]]; then + # Write the version information to version_rev.h + echo "$version_info" > "$versionfile" +fi -- cgit v1.2.3