mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-11 19:24:10 +01:00
87 lines
2.7 KiB
Batchfile
87 lines
2.7 KiB
Batchfile
@echo off
|
|
rem
|
|
rem make_header - a workaround to build NSIS version info header from
|
|
rem Makefile using different environments (Windows cmd or Unix-like sh)
|
|
rem still being more or less portable.
|
|
rem
|
|
rem This script tries to find any git command line utility on the system.
|
|
rem First, it looks at the predefined location of git.exe installed by
|
|
rem msysgit package available at http://code.google.com/p/msysgit/
|
|
rem If not found, it searches for git executables in the system PATH.
|
|
rem If also not found, then it gives up and no commit info will be available.
|
|
rem
|
|
rem Expected parameters:
|
|
rem %1: repository source path
|
|
rem %2: header file full path and name
|
|
rem
|
|
|
|
rem FIXME: we should have product version info somewhere else
|
|
set OUT_FILE=OpenPilotGCS-%%%%ad-%%%%h-install.exe
|
|
set PRODUCT_VERSION=0.0.0.0
|
|
set FILE_VERSION=%%%%ad %%BRANCH%%:%%%%h
|
|
set BUILD_DESCRIPTION=Built using %%ORIGIN%% as origin, branch %%BRANCH%%, commit %%%%H, committed %%%%ci
|
|
|
|
set REPO=%1
|
|
set HEADER=%2
|
|
if "%REPO%" == "" goto NoRepo
|
|
if "%HEADER%" == "" goto NoHeader
|
|
goto OK
|
|
|
|
:NoRepo
|
|
:NoHeader
|
|
echo This script should be called from Makefile only
|
|
goto :eof
|
|
|
|
:Ok
|
|
rem Looking for git command line utility at the predefined msysgit location
|
|
rem first, and in the PATH last. Also note that we use call command which is
|
|
rem required if we execute a .cmd or .bat file instead of .exe
|
|
|
|
set GIT=%ProgramFiles%\Git\bin\git.exe
|
|
if exist "%GIT%" goto Found
|
|
|
|
for %%G in (git.exe) do set GIT=%%~$PATH:G
|
|
if exist "%GIT%" goto Found
|
|
|
|
for %%G in (git.cmd) do set GIT=%%~$PATH:G
|
|
if exist "%GIT%" goto Found
|
|
|
|
for %%G in (git.bat) do set GIT=%%~$PATH:G
|
|
if exist "%GIT%" goto Found
|
|
|
|
:NotFound
|
|
echo git not found, no version info available
|
|
goto :eof
|
|
|
|
:Found
|
|
echo Using "%GIT%" to extract version info from "%REPO%"...
|
|
|
|
rem Getting remote origin name
|
|
for /F "usebackq tokens=1-3" %%G in (`call "%GIT%" remote -v`) do (
|
|
if "%%G" == "origin" if "%%I" == "(fetch)" set ORIGIN=%%H
|
|
)
|
|
|
|
rem Getting branch name
|
|
for /F "usebackq tokens=1,2" %%G in (`call "%GIT%" branch --no-color`) do (
|
|
if "%%G" == "*" set BRANCH=%%H
|
|
)
|
|
|
|
rem Getting commit info
|
|
set OPTS=-1 --no-color --date=short
|
|
set OPTS=%OPTS% "--format=format:
|
|
set OPTS=%OPTS%;%%%%n
|
|
set OPTS=%OPTS%; AUTOGENERATED HEADER FILE%%%%n
|
|
set OPTS=%OPTS%;%%%%n
|
|
set OPTS=%OPTS%%%%%n
|
|
set OPTS=%OPTS%; Installer file name%%%%n
|
|
set OPTS=%OPTS%!define OUT_FILE \"%OUT_FILE%\"%%%%n
|
|
set OPTS=%OPTS%%%%%n
|
|
set OPTS=%OPTS%; Installer version info%%%%n
|
|
set OPTS=%OPTS%!define PRODUCT_VERSION \"%PRODUCT_VERSION%\"%%%%n
|
|
set OPTS=%OPTS%!define FILE_VERSION \"%FILE_VERSION%\"%%%%n
|
|
set OPTS=%OPTS%!define BUILD_DESCRIPTION \"%BUILD_DESCRIPTION%\"%%%%n"
|
|
|
|
pushd "%REPO%"
|
|
call "%GIT%" log %OPTS% >%HEADER%
|
|
popd
|