Optimized Windows build environment

This commit is contained in:
thunder2 2018-06-17 17:51:58 +02:00
parent 93ab975b72
commit 1eed404170
14 changed files with 185 additions and 295 deletions

View File

@ -13,11 +13,11 @@ call "%~dp0build-libs\build-libs.bat"
if errorlevel 1 %cecho% error "Failed to build libraries." & exit /B %ERRORLEVEL%
%cecho% info "Build %SourceName%"
call "%~dp0build\build.bat" retrotor
call "%~dp0build\build.bat" release tor version autologin plugins
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
%cecho% info "Pack %SourceName%"
call "%~dp0build\pack.bat" retrotor
call "%~dp0build\pack.bat" release tor
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
exit /B 0

View File

@ -13,11 +13,11 @@ call "%~dp0build-libs\build-libs.bat"
if errorlevel 1 %cecho% error "Failed to build libraries." & exit /B %ERRORLEVEL%
%cecho% info "Build %SourceName%"
call "%~dp0build\build.bat" standard
call "%~dp0build\build.bat" release version autologin plugins
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
%cecho% info "Pack %SourceName%"
call "%~dp0build\pack.bat" standard
call "%~dp0build\pack.bat" release
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
%cecho% info "Build installer"

View File

@ -9,7 +9,7 @@ call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
:: Initialize environment
call "%~dp0env.bat" standard
call "%~dp0env.bat" release
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
@ -29,6 +29,7 @@ set NSIS_PARAM=%NSIS_PARAM% /DQTDIR="%QtPath%\.."
set NSIS_PARAM=%NSIS_PARAM% /DMINGWDIR="%MinGWPath%\.."
set NSIS_PARAM=%NSIS_PARAM% /DOUTDIR="%RsPackPath%"
set NSIS_PARAM=%NSIS_PARAM% /DINSTALLERADD="%RsArchiveAdd%"
set NSIS_PARAM=%NSIS_PARAM% /DEXTERNAL_LIB_DIR="%BuildLibsPath%\libs"
:: Scan version from source
set RsRevision=

View File

@ -22,6 +22,7 @@ set /P LibsGCCVersion=<"%BuildLibsPath%\libs\gcc-version"
if "%LibsGCCVersion%" NEQ "%GCCVersion%" %cecho% error "Please use correct version of external libraries. (gcc %GCCVersion% ^<^> libs %LibsGCCVersion%)." & exit /B 1
:: Check git executable
if "%ParamVersion%"=="0" goto found_git
set GitPath=
call "%ToolsPath%\find-in-path.bat" GitPath git.exe
if "%GitPath%" NEQ "" goto found_git
@ -33,7 +34,7 @@ echo.
echo === Version
echo.
title Build - %SourceName%%RsType%-%RsBuildConfig% [Version]
title Build - %SourceName%-%RsBuildConfig% [Version]
pushd "%SourcePath%\retroshare-gui\src\gui\images"
:: Touch resource file
@ -47,10 +48,12 @@ echo.
echo === qmake
echo.
title Build - %SourceName%%RsType%-%RsBuildConfig% [qmake]
title Build - %SourceName%-%RsBuildConfig% [qmake]
set RS_QMAKE_CONFIG=%RsBuildConfig% version_detail_bash_script rs_autologin retroshare_plugins
if "%RsRetroTor%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% retrotor
set RS_QMAKE_CONFIG=%RsBuildConfig%
if "%ParamVersion%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% version_detail_bash_script
if "%ParamAutologin%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_autologin
if "%ParamPlugins%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% retroshare_plugins
qmake "%SourcePath%\RetroShare.pro" -r -spec win32-g++ "CONFIG+=%RS_QMAKE_CONFIG%" "EXTERNAL_LIB_DIR=%BuildLibsPath%\libs"
if errorlevel 1 goto error
@ -59,7 +62,7 @@ echo.
echo === make
echo.
title Build - %SourceName%%RsType%-%RsBuildConfig% [make]
title Build - %SourceName%-%RsBuildConfig% [make]
if exist "%EnvJomExe%" (
"%EnvJomExe%"

View File

@ -7,7 +7,9 @@ call "%~dp0..\env.bat"
if errorlevel 1 goto error_env
call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
call "%~dp0env.bat" %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
if not exist "%RsBuildPath%" exit /B 0

View File

@ -1,16 +1,52 @@
if "%~1"=="standard" (
set RsRetroTor=
set RsType=
) else (
if "%~1"=="retrotor" (
set RsRetroTor=1
set RsType=-tor
) else (
echo.
echo Usage: standard^|retrotor
echo.
exit /B 2
:: Process commandline parameter
set ParamRelease=0
set ParamDebug=0
set ParamVersion=0
set ParamAutologin=0
set ParamPlugins=0
set ParamTor=0
:parameter_loop
if "%~1" NEQ "" (
for /f "tokens=1,2 delims==" %%a in ("%~1") do (
if "%%~a"=="release" (
set ParamRelease=1
) else if "%%~a"=="debug" (
set ParamDebug=1
) else if "%%~a"=="version" (
set ParamVersion=1
) else if "%%~a"=="autologin" (
set ParamAutologin=1
) else if "%%~a"=="plugins" (
set ParamPlugins=1
) else if "%%~a"=="tor" (
set ParamTor=1
) else (
echo.
echo Unknown parameter %1
goto :usage
)
)
shift /1
goto parameter_loop
)
if "%ParamRelease%"=="1" (
if "%ParamDebug%"=="1" (
echo.
echo Release or Debug?
goto :usage
)
set RsBuildConfig=release
) else if "%ParamDebug%"=="1" (
set RsBuildConfig=debug
) else goto :usage
if "%ParamTor%"=="1" (
set RsType=-tor
) else (
set RsType=
)
set BuildPath=%EnvRootPath%\builds
@ -39,8 +75,7 @@ if "%GCCVersion%"=="" %cecho% error "Cannot get gcc version." & exit /B 1
set BuildLibsPath=%EnvRootPath%\build-libs\gcc-%GCCVersion%
set RsBuildConfig=release
set RsBuildPath=%BuildPath%\Qt-%QtVersion%%RsType%-%RsBuildConfig%
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsBuildConfig%
set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsBuildConfig%
set RsPackPath=%DeployPath%
set RsArchiveAdd=
@ -50,4 +85,21 @@ call "%~dp0env-mod.bat"
if errorlevel 1 exit /B %ERRORLEVEL%
:no_mod
exit /B 0
exit /B 0
:usage
echo.
echo Usage: release^|debug [version autologin plugins]
echo.
echo Mandatory parameter
echo release^|debug Build release or debug version
echo.
echo Optional parameter (need clean when changed)
echo version Create version information from git
echo autologin Build with autologin
echo plugins Build plugins
echo.
echo Parameter for pack
echo tor Pack tor version
echo.
exit /B 2

View File

@ -1,6 +1,3 @@
:: Usage:
:: call git-log.bat standard|retrotor [no-ask]
@echo off
setlocal
@ -13,7 +10,9 @@ call "%~dp0..\env.bat"
if errorlevel 1 goto error_env
call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
call "%~dp0env.bat" %1
call "%~dp0env.bat" %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
:: Check git executable

View File

@ -62,8 +62,8 @@ set RsDate=
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
if "%RsRetroTor%"=="1" (
:: Check Retrotor
if "%ParamTor%"=="1" (
:: Check for tor executable
if not exist "%EnvDownloadPath%\tor\Tor\tor.exe" (
echo Tor binary not found. Please download Tor Expert Bundle from
echo https://www.torproject.org/download/download.html.en
@ -121,7 +121,7 @@ for /D %%D in ("%RsBuildPath%\plugins\*") do (
)
echo copy external binaries
copy "%RootPath%\libs\bin\*.dll" "%RsDeployPath%" %Quite%
copy "%BuildLibsPath%\libs\bin\*.dll" "%RsDeployPath%" %Quite%
echo copy dependencies
call :copy_dependencies "%RsDeployPath%\retroshare.exe" "%RsDeployPath%"
@ -180,7 +180,7 @@ if exist "%SourcePath%\libresapi\src\webui" (
xcopy /S "%SourcePath%\libresapi\src\webui" "%RsDeployPath%\webui" %Quite%
)
if "%RsRetroTor%"=="1" (
if "%ParamTor%"=="1" (
echo copy tor
echo n | copy /-y "%EnvDownloadPath%\tor\Tor\*.*" "%RsDeployPath%" %Quite%
)
@ -217,13 +217,19 @@ if exist "%~1\%RsBuildConfig%\%~n1.dll" (
goto :EOF
:copy_dependencies
set CopyDependenciesCopiedSomething=0
for /F "usebackq" %%A in (`%ToolsPath%\depends.bat list %1`) do (
if exist "%QtPath%\%%A" (
copy "%QtPath%\%%A" %2 %Quite%
) else (
if exist "%MinGWPath%\%%A" (
copy "%MinGWPath%\%%A" %2 %Quite%
if not exist "%~2\%%A" (
if exist "%QtPath%\%%A" (
set CopyDependenciesCopiedSomething=1
copy "%QtPath%\%%A" %2 %Quite%
) else (
if exist "%MinGWPath%\%%A" (
set CopyDependenciesCopiedSomething=1
copy "%MinGWPath%\%%A" %2 %Quite%
)
)
)
)
if "%CopyDependenciesCopiedSomething%"=="1" goto copy_dependencies
goto :EOF

View File

@ -1,224 +0,0 @@
Compling for Windows.
-----------------------------------
For Version V0.5.0+ we are switching to GPGme libraries.
This documents a clean compilation of V0.5 for Windows.
Tested on: WinXP July 2009.
You will need:
* Qt4.5 Development Libraries (from TrollTech)
* MinGw/MinSys full installation (from sourceforge.net)
* Cygwin (for OpenSSL compilation / SVN / Unix Tools)
* OpenSSL standard libraries.
* GPG Windows Install (includes gpg.exe)
* MiniUpnp library
* gpgme Library.
* libgpg-error Library.
This compilation is a little tricky as different environments
are needed to compile different libraries.
a) Cygwin: libssl.a libcrypto.a
b) MinGW/MSYS: libgpg-error, libgpgme.a, libretroshare.a, libminiupnp.a
c) Qt/MinGW: Retroshare.exe
/***************** Installation of Development Tools **************/
In this section we install: cygwin, mingw/msys and Qt4.5
1) Install Cygwin
a) download the installer and run.
b) be sure to select from the development packages:
* mingw
* svn
* gcc/gdb
* make
links:
http://www.cygwin.org/
2) install the MinGW/Msys package.
a) Download MinGW-5.1.4 installer and run.
b) Download MSYS-1.0.11 installer and run.
links:
http://downloads.sourceforge.net/mingw/MinGW-5.1.4.exe
http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
http://www.mingw.org/
http://sourceforge.net/projects/mingw/files/
3) Install Qt4.5 LGPL Version. (Qt SDK 2009.03)
a) Download from website and run.
b) Select all options (including MinGW)
links:
http://www.qtsoftware.com/downloads
/***************** Installation of Development Tools **************/
/******************* Compiling Support Libraries ******************/
1) Compile OpenSSL using Cygwin.
a) launch cygwin xterm
b) untar openssl source package.
c) Configure mingw
d) make.
2) Compile gpg-error
a) Download from gpg
b) load up MinGW/MSYS Bash shell.
c) extract code.
d) configure
e) make
f) make install
The library will end up in /local/lib
3) Compile gpgme
a) Download from gpg
b) load up MinGW/MSYS Bash shell.
c) extract code.
d) configure
e) make
f) make install
The library will end up in /local/lib
4) Compile MiniUPnP.
up to release v1.3 now.
links:
http://miniupnp.free.fr/
http://miniupnp.free.fr/files/
5) Install pthreads
links:
http://sourceware.org/pthreads-win32/
ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.exe
/******************* Compiling Support Libraries ******************/
/*********************** Compiling Retroshare *********************/
1) Setup Source Code TAR (TODO: Update for windows).
This is useful as it provides a standard structure to work against,
we will update this with the required support libraries soon.
a) Open MSYS Bash shell, and change to this location.
c:/msys/1.0/home/XXX/retroshare
b) create a working directory under this.
1) c:/msys/1.0/home/XXX/miniupnpc-1.3
2) c:/msys/1.0/home/XXX/pthreads-w32-2-8-0-release
3) c:/msys/1.0/home/XXX/zlib-1.2.3
4) c:/msys/1.0/home/XXX/gpgme-1.1.8
5) c:/msys/1.0/home/XXX/libgpg-error-1.7
c) Install OpenSSL to this directory (get from http://www.slproweb.com/download/Win32OpenSSL-0_9_8k.exe)
1) c:/msys/1.0/home/XXX/OpenSSL
d) get the latest svn trunk and unzip to (get from http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk.tar.gz) .
1) c:/msys/1.0/home/XXX/retroshare
2) Compile libretroshare
a) change to the libretroshare directory.
1) cd c:/msys/1.0/home/XXX/retroshare/libretroshare/src
b) modify support directory paths to point at correct locations.
1) open scripts/config.mk and enable OS = Win # MinGw.
2) open scripts/config-mingw.mk
3) disable lines (line 20-29)
4) enable lines 34-42 and 118-119
#### Enable this section for compiling with MSYS/MINGW compile
SRC_ROOT=/home/linux
SSL_DIR=$(SRC_ROOT)/OpenSSL
GPGME_DIR=$(SRC_ROOT)/gpgme-1.1.8
GPG_ERROR_DIR=$(SRC_ROOT)/libgpg-error-1.7
ZLIB_DIR=$(SRC_ROOT)/zlib-1.2.3
UPNPC_DIR=$(SRC_ROOT)/miniupnpc-1.0
PTHREADS_DIR=$(SRC_ROOT)/pthreads-w32-2-8-0-release
### Enable this for GPGME and GPG ERROR dirs
CFLAGS += -I$(GPGME_DIR)/src
CFLAGS += -I$(GPG_ERROR_DIR)/src
5) Edit your SRC_ROOT to your /home/xxxx dir
c) compile libretroshare
1) make
3) Copy all the required support libraries into the library directory:
c:/msys/1.0/home/XXX/lib
This should include:
gpg-error / gpgme libraries:
libgpg-error.a
libgpg-error.dll.a
libgpg-error.la
libgpgme.dll.a
libgpgme.la
openssl libraries:
libcrypto.a
libssl.a
miniupnpc / pthreads / libz
libminiupnpc.a
miniupnpc.dll
libpthreadGCE2.a
pthreadGCE2.dll
libz.a
extra library from cygwin. (renamed from libcrypt32.a)
libcrypt32-cygwin.a
libretroshare
libretroshare.a
4) Compile GUI.
/*********************** Compiling Retroshare *********************/
/************************ Running Retroshare **********************/
1) Collect Relevant DLL's with Application.
a) make retroshare application directory.
b) copy Retroshare.exe executable into directory.
c) Copy required DLL's into that directory.
These include:
mingw runtime:
mingwm10.dll
gpgme/gpg-error:
libgpg-error-0.dll
libgpgme-11.dll
other support libraries:
miniupnpc.dll
pthreadGCE2.dll
Qt DLLs:
QtCore4.dll,
QtGui4.dll,...
etc.
d) You should be able to run Retroshare from this directory now!
2) Install gpg4win package... for gpg.exe
3) Create an OpenGPG identity using gpa or Enigmail or other PGP tool.
4) You should be able to use Retroshare on your PC now.
/************************ Running Retroshare **********************/
/******************************** FAQs ****************************/
Ask and it might be answered!
/******************************** FAQs ****************************/
This is obviously a work in progress -
drBob.

View File

@ -53,7 +53,7 @@ if not exist "%EnvToolsPath%\cecho.exe" (
echo Download cecho installation
if not exist "%EnvDownloadPath%\%CEchoInstall%" call "%ToolsPath%\winhttpjs.bat" "%CEchoUrl%" -saveTo "%EnvDownloadPath%\%CEchoInstall%"
if not exist "%EnvDownloadPath%\%CEchoInstall%" call "%ToolsPath%\download-file.bat" "%CEchoUrl%" "%EnvDownloadPath%\%CEchoInstall%"
if not exist "%EnvDownloadPath%\%cCEhoInstall%" echo Cannot download cecho installation& goto error
echo Unpack cecho

View File

@ -0,0 +1,15 @@
; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation
!macro !defineifexist _VAR_NAME _FILE_NAME
!tempfile _TEMPFILE
!ifdef NSIS_WIN32_MAKENSIS
; Windows - cmd.exe
!system 'if exist "${_FILE_NAME}" echo !define ${_VAR_NAME} > "${_TEMPFILE}"'
!else
; Posix - sh
!system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME}" > "${_TEMPFILE}"; fi'
!endif
!include '${_TEMPFILE}'
!delfile '${_TEMPFILE}'
!undef _TEMPFILE
!macroend
!define !defineifexist "!insertmacro !defineifexist"

View File

@ -1,6 +1,8 @@
; Script generated with the Venis Install Wizard & modified by defnax
; Reworked by Thunder
!include ifexist.nsh
# Needed defines
;!define BUILDADD ""
;!define RELEASEDIR ""
@ -197,9 +199,9 @@ Section $(Section_Main) Section_Main
File "${MINGWDIR}\bin\libwinpthread-1.dll"
; External binaries
File "${SOURCEDIR}\..\libs\bin\miniupnpc.dll"
File "${SOURCEDIR}\..\libs\bin\libeay32.dll"
File "${SOURCEDIR}\..\libs\bin\ssleay32.dll"
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
File "${EXTERNAL_LIB_DIR}\bin\libeay32.dll"
File "${EXTERNAL_LIB_DIR}\bin\ssleay32.dll"
; Other files
File "${SOURCEDIR}\retroshare-gui\src\changelog.txt"
@ -234,17 +236,33 @@ Section $(Section_Main) Section_Main
SectionEnd
# Plugins
SectionGroup $(Section_Plugins) Section_Plugins
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
SectionEnd
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
SectionEnd
SectionGroupEnd
!ifdef PLUGIN_FEEDREADER_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_VOIP_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_EXISTS
SectionGroup $(Section_Plugins) Section_Plugins
!ifdef PLUGIN_FEEDREADER_EXISTS
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
SectionEnd
!endif
!ifdef PLUGIN_VOIP_EXISTS
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
SectionEnd
!endif
SectionGroupEnd
!endif
# Data (Styles)
Section $(Section_Data) Section_Data

View File

@ -1,6 +1,8 @@
; Script generated with the Venis Install Wizard & modified by defnax
; Reworked by Thunder
!include ifexist.nsh
# Needed defines
;!define BUILDADD ""
;!define RELEASEDIR ""
@ -212,9 +214,9 @@ Section $(Section_Main) Section_Main
File "${MINGWDIR}\bin\libwinpthread-1.dll"
; External binaries
File "${SOURCEDIR}\..\libs\bin\miniupnpc.dll"
File "${SOURCEDIR}\..\libs\bin\libeay32.dll"
File "${SOURCEDIR}\..\libs\bin\ssleay32.dll"
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
File "${EXTERNAL_LIB_DIR}\bin\libeay32.dll"
File "${EXTERNAL_LIB_DIR}\bin\ssleay32.dll"
; Other files
File "${SOURCEDIR}\retroshare-gui\src\changelog.txt"
@ -256,17 +258,33 @@ Section $(Section_Main) Section_Main
SectionEnd
# Plugins
SectionGroup $(Section_Plugins) Section_Plugins
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
SectionEnd
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
SectionEnd
SectionGroupEnd
!ifdef PLUGIN_FEEDREADER_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_VOIP_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_EXISTS
SectionGroup $(Section_Plugins) Section_Plugins
!ifdef PLUGIN_FEEDREADER_EXISTS
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
SectionEnd
!endif
!ifdef PLUGIN_VOIP_EXISTS
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
SectionEnd
!endif
SectionGroupEnd
!endif
# Data (Styles)
Section $(Section_Data) Section_Data

View File

@ -1,15 +1,15 @@
:: Usage:
:: call depends.bat [list^|missing] file
setlocal
if "%2"=="" (
echo Usage: %~nx0 [list^|missing] File
goto :exit
exit /B 1
)
if not exist "%EnvDependsExe%" echo depends.exe not found in %EnvToolsPath%.& goto exit
if not exist "%EnvCutExe%" echo cut.exe not found in %EnvToolsPath%.& goto exit
setlocal
if not exist "%EnvDependsExe%" echo depends.exe not found in %EnvToolsPath%.& exit /B 1
if not exist "%EnvCutExe%" echo cut.exe not found in %EnvToolsPath%.& exit /B 1
start /wait "" "%EnvDependsExe%" /c /oc:"%~dp0depends.tmp" %2
if "%1"=="missing" (
@ -33,5 +33,5 @@ if "%1"=="list" (
if exist "%~dp0depends.tmp" del /Q "%~dp0depends.tmp"
if exist "%~dp0depends1.tmp" del /Q "%~dp0depends1.tmp"
:exit
endlocal
exit /B 0