mirror of
https://github.com/imapsync/imapsync.git
synced 2024-11-17 00:02:29 +01:00
207 lines
6.1 KiB
Batchfile
Executable File
207 lines
6.1 KiB
Batchfile
Executable File
|
|
REM $Id: build_exe.bat,v 1.56 2019/12/11 18:57:20 gilles Exp gilles $
|
|
|
|
@SETLOCAL
|
|
@ECHO Currently running through %0 %*
|
|
|
|
@ECHO Building imapsync.exe
|
|
|
|
@REM the following command change current directory to the dirname of the current batch pathname
|
|
CD /D %~dp0
|
|
|
|
REM Remove the error file because its existence means an error occurred during this script execution
|
|
IF EXIST LOG_bat\%~nx0.txt DEL LOG_bat\%~nx0.txt
|
|
|
|
|
|
CALL :handle_error CALL :detect_perl
|
|
CALL :handle_error CALL :check_modules
|
|
CALL :handle_error CALL :rename_to_old
|
|
CALL :handle_error CALL :pp_exe
|
|
CALL :handle_error CALL :copy_with_architecture_name
|
|
|
|
@REM Do a PAUSE if run by double-click, aka, explorer (then ). No PAUSE in a DOS window or via ssh.
|
|
IF %0 EQU "%~dpnx0" IF "%SSH_CLIENT%"=="" PAUSE
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
|
|
|
|
:pp_exe
|
|
@SETLOCAL
|
|
@REM In order to verify that all Strawberry dlls are statically included in the exe
|
|
@REM get https://docs.microsoft.com/en-us/sysinternals/downloads/listdlls
|
|
@REM You'll need a first run with Listdlls.exe -accepteula
|
|
@REM Run test_exe_tests.bat
|
|
@REM In parallel, run Listdlls.exe imapsync|findstr Strawberry
|
|
@REM No line should be in the output
|
|
|
|
@REM Now imapsync can check this itself if Listdlls.exe is in its dir
|
|
@REM .\imapsync.exe --testsunit tests_check_binary_embed_all_dyn_libs
|
|
|
|
@REM CALL pp -o imapsync.exe --link libeay32_.dll --link zlib1_.dll --link ssleay32_.dll .\imapsync
|
|
@IF [%PROCESSOR_ARCHITECTURE%] == [x86] (
|
|
@REM 32 bits
|
|
@REM Do not add command after this one since it will anihilate the %ERRORLEVEL% of pp
|
|
ECHO Building 32 bits binary PROCESSOR_ARCHITECTURE = %PROCESSOR_ARCHITECTURE%
|
|
CALL pp -u -x -o imapsync.exe -M Test2::Formatter -M Test2::Formatter::TAP -M Test2::Event ^
|
|
--link zlib1_.dll ^
|
|
--link libcrypto-1_1_.dll ^
|
|
--link libssl-1_1_.dll ^
|
|
.\imapsync
|
|
) ELSE (
|
|
@REM 64 bits
|
|
@REM Do not add command after this one since it will anihilate the %ERRORLEVEL% of pp
|
|
ECHO Building 64 bits binary PROCESSOR_ARCHITECTURE = %PROCESSOR_ARCHITECTURE%
|
|
CALL pp -u -x -o imapsync.exe -M Test2::Formatter -M Test2::Formatter::TAP -M Test2::Event ^
|
|
-M Test2::EventFacet -M Test2::Event::Pass ^
|
|
-M Test2::Event::Fail -M Test2::Event::V2 ^
|
|
--link libcrypto-1_1-x64__.dll ^
|
|
--link zlib1__.dll ^
|
|
--link libssl-1_1-x64__.dll ^
|
|
.\imapsync
|
|
)
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
|
|
@REM -M Test2::Event::Info
|
|
|
|
|
|
::------------------------------------------------------
|
|
::--------------- Copy with architecture name ----------
|
|
:copy_with_architecture_name
|
|
@SETLOCAL
|
|
IF [%PROCESSOR_ARCHITECTURE%] == [x86] (
|
|
@REM 32 bits
|
|
COPY /B .\imapsync.exe .\imapsync_32bit.exe
|
|
) ELSE (
|
|
@REM 64 bits
|
|
COPY /B .\imapsync.exe .\imapsync_64bit.exe
|
|
)
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
::------------------------------------------------------
|
|
|
|
::------------------------------------------------------
|
|
::--------------- Copy with architecture name ----------
|
|
:rename_to_old
|
|
@SETLOCAL
|
|
IF EXIST imapsync_old.exe DEL imapsync_old.exe
|
|
IF EXIST imapsync.exe RENAME imapsync.exe imapsync_old.exe
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
::------------------------------------------------------
|
|
|
|
|
|
|
|
::------------------------------------------------------
|
|
::--------------- Detect Perl --------------------------
|
|
:detect_perl
|
|
@SETLOCAL
|
|
perl -v
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
::------------------------------------------------------
|
|
|
|
|
|
::------------------------------------------------------
|
|
::--------------- Check modules are here --------------
|
|
:check_modules
|
|
@SETLOCAL
|
|
perl ^
|
|
-mApp::cpanminus ^
|
|
-mTest::MockObject ^
|
|
-mPAR::Packer ^
|
|
-mReadonly ^
|
|
-mAuthen::NTLM ^
|
|
-mData::Dumper ^
|
|
-mData::Uniqid ^
|
|
-mDigest::HMAC_MD5 ^
|
|
-mDigest::HMAC_SHA1 ^
|
|
-mDigest::MD5 ^
|
|
-mFile::Copy::Recursive ^
|
|
-mFile::Spec ^
|
|
-mIO::Socket ^
|
|
-mIO::Socket::INET ^
|
|
-mIO::Socket::IP ^
|
|
-mIO::Socket::SSL ^
|
|
-mIO::Tee ^
|
|
-mMail::IMAPClient ^
|
|
-mRegexp::Common ^
|
|
-mTerm::ReadKey ^
|
|
-mTime::Local ^
|
|
-mUnicode::String ^
|
|
-mURI::Escape ^
|
|
-mJSON::WebToken ^
|
|
-mLWP::UserAgent ^
|
|
-mHTML::Entities ^
|
|
-mJSON ^
|
|
-mCrypt::OpenSSL::RSA ^
|
|
-mEncode::Byte ^
|
|
-mFile::Tail ^
|
|
-mEncode ^
|
|
-mEncode::IMAPUTF7 ^
|
|
-mMIME::Base64 ^
|
|
-e ''
|
|
IF ERRORLEVEL 1 CALL .\install_modules.bat
|
|
@ECHO Calling a second time to check all modules are now installed
|
|
perl ^
|
|
-mApp::cpanminus ^
|
|
-mTest::MockObject ^
|
|
-mPAR::Packer ^
|
|
-mReadonly ^
|
|
-mAuthen::NTLM ^
|
|
-mData::Dumper ^
|
|
-mData::Uniqid ^
|
|
-mDigest::HMAC_MD5 ^
|
|
-mDigest::HMAC_SHA1 ^
|
|
-mDigest::MD5 ^
|
|
-mFile::Copy::Recursive ^
|
|
-mFile::Spec ^
|
|
-mIO::Socket ^
|
|
-mIO::Socket::INET ^
|
|
-mIO::Socket::IP ^
|
|
-mIO::Socket::SSL ^
|
|
-mIO::Tee ^
|
|
-mMail::IMAPClient ^
|
|
-mRegexp::Common ^
|
|
-mTerm::ReadKey ^
|
|
-mTime::Local ^
|
|
-mUnicode::String ^
|
|
-mURI::Escape ^
|
|
-mJSON::WebToken ^
|
|
-mLWP::UserAgent ^
|
|
-mHTML::Entities ^
|
|
-mJSON ^
|
|
-mCrypt::OpenSSL::RSA ^
|
|
-mEncode::Byte ^
|
|
-mFile::Tail ^
|
|
-mEncode ^
|
|
-mEncode::IMAPUTF7 ^
|
|
-mMIME::Base64 ^
|
|
-e ''
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
::------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
::------------------------------------------------------
|
|
::--------------- Handle error -------------------------
|
|
:handle_error
|
|
@SETLOCAL
|
|
ECHO IN %0 with parameters %*
|
|
%*
|
|
SET CMD_RETURN=%ERRORLEVEL%
|
|
|
|
IF %CMD_RETURN% EQU 0 (
|
|
ECHO GOOD END
|
|
) ELSE (
|
|
ECHO BAD END
|
|
IF NOT EXIST LOG_bat MKDIR LOG_bat
|
|
ECHO Failure calling: %* >> LOG_bat\%~nx0.txt
|
|
)
|
|
@ENDLOCAL
|
|
EXIT /B
|
|
::------------------------------------------------------
|