Skip to content
Snippets Groups Projects
Commit 1ad4d174 authored by Gigg, Martyn Anthony's avatar Gigg, Martyn Anthony
Browse files

Add additional arguments to the fetch_Third_Party.bat script

Allows just the includes/libs to be fetched and also shallow clones
both repositories.
parent 1fee43d0
No related branches found
No related tags found
No related merge requests found
...@@ -20,7 +20,7 @@ echo %sha1% ...@@ -20,7 +20,7 @@ echo %sha1%
:: Get or update the third party dependencies (basically just to get python) :: Get or update the third party dependencies (basically just to get python)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cd %WORKSPACE%\Code cd %WORKSPACE%\Code
call fetch_Third_Party win64 call fetch_Third_Party --libs-only win64
cd %WORKSPACE% cd %WORKSPACE%
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
......
:: This script deals with getting hold of the required third party includes and libraries :: This script deals with getting hold of the required third party includes and libraries
:: It will either clone or pull 3rdpartyincludes & 3rdpartylibs-win32/64 and put them in the right place for CMake :: It will either clone or pull 3rdpartyincludes & 3rdpartylibs-win32/64 and put them in the right place for CMake
:: ::
:: Usage: fetch_Third_Party [win32|win64] :: Usage: fetch_Third_Party [--includes-only] [--libs-only] [win32|win64]
:: ::
:: - [x86|x64] If provided this indicates the required architecture. If left bank your architecture is auto-determined :: - [x86|x64] If provided this indicates the required architecture. If left bank your architecture is auto-determined
@echo off @echo off
setlocal enableextensions
setlocal enabledelayedexpansion
set fetchincludes=1
set fetchlibs=1
set userarch=win64
call:argcheck %*
:: Check for git. Older versions used %GitCmd%, newer just git. The older versions still :: Check for git. Older versions used %GitCmd%, newer just git. The older versions still
:: have git.exe but it should be called through git.cmd so git.cmd check is first :: have git.exe but it should be called through git.cmd so git.cmd check is first
...@@ -44,43 +52,49 @@ del CheckOS.txt ...@@ -44,43 +52,49 @@ del CheckOS.txt
del StringCheck.txt del StringCheck.txt
:: Check if user has overridden the value :: Check if user has overridden the value
if NOT "%1"=="" ( if NOT "%userarch"=="" (
if "%1"=="win64" ( set arch=!userarch!
set arch=win64
) else (
if "%1"=="win32" (
set arch=win32
) else (
echo "Unknown architecture. Valid options are:win32,win64."
exit /B 1
)
)
) )
echo Using architecture=%arch% echo Using architecture=%arch%
:: Find out the url where mantid came from so we use the same location & protocol :: Find out the url where mantid came from so we use the same location & protocol
FOR /F %%I IN ('%GitCmd% config --get remote.origin.url') DO SET url=%%I FOR /F %%I IN ('%GitCmd% config --get remote.origin.url') DO SET url=%%I
echo Mantid repository URL: %url% echo Mantid repository URL: %url%
:: Check if includes are already there - if so, just update :: Check if includes are already there - if so, just update
IF EXIST Third_Party/include GOTO UpdateInc if /i "%fetchincludes%"=="1" (
IF EXIST Third_Party/include GOTO :UpdateInc
set incs=%url:mantid.git=%3rdpartyincludes.git set incs=%url:mantid.git=%3rdpartyincludes.git
:: Otherwise we need to clone :: Otherwise we need to clone
echo Cloning Third_Party includes from %incs% echo Cloning Third_Party includes from !incs!
call %GitCmd% clone %incs% Third_Party/include call !GitCmd! clone --depth=1 !incs! Third_Party/include
)
GOTO :DoLibs
:argcheck
if "%~1" NEQ "" (
if /i "%1"=="win32" set userarch=win32 & GOTO:argcheck_shift
if /i "%1"=="win64" set userarch=win64 & GOTO:argcheck_shift
if /i "%1"=="--includes-only" set fetchlibs=0 & GOTO:argcheck_shift
if /i "%1"=="--libs-only" set fetchincludes=0 & GOTO:argcheck_shift
:argcheck_shift
shift
goto :argcheck
)
goto:eof
:DoLibs :DoLibs
:: Check is libs are already there - if so, just update if /i "%fetchlibs%"=="1" (
IF EXIST Third_Party/lib/%arch% GOTO UpdateLib :: Check is libs are already there - if so, just update
IF EXIST Third_Party/lib/%arch% GOTO UpdateLib
set libs=%url:mantid.git=%3rdpartylibs-%arch%.git set libs=%url:mantid.git=%3rdpartylibs-%arch%.git
echo %libs%
:: Otherwise we need to clone :: Otherwise we need to clone
echo Cloning Third_Party libraries from %libs% echo Cloning Third_Party libraries from !libs!
call %GitCmd% clone %libs% Third_Party/lib/%arch% call %GitCmd% clone --depth=1 !libs! Third_Party/lib/%arch%
)
exit /B 0 exit /B 0
:: Just making sure what we have is up to date :: Just making sure what we have is up to date
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment