diff options
author | Underground78 <underground78@users.sourceforge.net> | 2013-10-08 01:21:45 +0400 |
---|---|---|
committer | Underground78 <underground78@users.sourceforge.net> | 2014-05-11 02:09:47 +0400 |
commit | f9cc8f9d5d47eda5e42d03ebeeaf3d8a5b8de3e8 (patch) | |
tree | d35a25560f6d966ed788ac2427f15c7e8506973e | |
parent | f59c324002a1d5198ad84168675e8449b09c0927 (diff) |
[MPC-HC] Version number: Add a "git describe based" commit number to identify the vanilla LAV Filters we are based on.mpc-hc-1.7.5-2
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.
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | common/DSUtilLite/DSUtilLite.vcxproj | 6 | ||||
-rw-r--r-- | common/includes/version.h | 6 | ||||
-rw-r--r-- | update_version.bat | 49 | ||||
-rw-r--r-- | version.sh | 67 |
5 files changed, 128 insertions, 2 deletions
@@ -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 @@ <ClCompile> <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> + <PreBuildEvent> + <Command>..\..\update_version.bat</Command> + </PreBuildEvent> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> <ClCompile> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> + <PreBuildEvent> + <Command>..\..\update_version.bat</Command> + </PreBuildEvent> </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="BaseDSPropPage.h" /> diff --git a/common/includes/version.h b/common/includes/version.h index 1c7304d4..f193e59c 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 <http://www.gnu.org/licenses/>. + + +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 <http://www.gnu.org/licenses/>. + +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 |