diff options
Diffstat (limited to 'contrib/coverity.bat')
-rwxr-xr-x | contrib/coverity.bat | 97 |
1 files changed, 44 insertions, 53 deletions
diff --git a/contrib/coverity.bat b/contrib/coverity.bat index 9d274189b..3dcd21c61 100755 --- a/contrib/coverity.bat +++ b/contrib/coverity.bat @@ -18,31 +18,22 @@ REM along with this program. If not, see <http://www.gnu.org/licenses/>. SETLOCAL +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" -PUSHD %~dp0 +SET "COMMON=%FILE_DIR%..\common.bat" IF EXIST "..\build.user.bat" CALL "..\build.user.bat" -IF NOT DEFINED COV_PATH SET "COV_PATH=H:\progs\thirdparty\cov-analysis-win64" -IF DEFINED COV_PATH IF NOT EXIST "%COV_PATH%" ( - ECHO. - ECHO ERROR: Coverity not found in "%COV_PATH%" - GOTO End -) - - -CALL "%VS120COMNTOOLS%\vsvars32.bat" -IF %ERRORLEVEL% NEQ 0 ( - ECHO vsvars32.bat call failed. - GOTO End -) +IF NOT EXIST "%COV_PATH%" (CALL "%COMMON%" :SubMsg "ERROR" "Coverity not found in '%COV_PATH%'" & EXIT /B) :Cleanup IF EXIST "cov-int" RD /q /s "cov-int" -IF EXIST "MPC-HC.lzma" DEL "MPC-HC.lzma" -IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" -IF EXIST "MPC-HC.tgz" DEL "MPC-HC.tgz" +IF EXIST "MPC-HC.tar.xz" DEL "MPC-HC.tar.xz" +IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" +IF EXIST "MPC-HC.tgz" DEL "MPC-HC.tgz" +IF EXIST "cov_upload.log" DEL "cov_upload.log" :Main @@ -54,58 +45,58 @@ CALL "..\build.bat" clean Api Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build Filters Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build IconLib Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build Api Both Release silent +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "Build failed." & EXIT /B) :tar -tar --version 1>&2 2>NUL || (ECHO. & ECHO ERROR: tar not found & GOTO SevenZip) -tar caf "MPC-HC.lzma" "cov-int" +CALL "%COMMON%" :SubDetectTar +IF NOT EXIST "%TAR%" (CALL "%COMMON%" :SubMsg "WARNING" "tar not found. Trying 7-zip..." & GOTO SevenZip) + +SET "FILE_NAME=MPC-HC.tar.xz" +SET "XZ_OPT=-9e" +REM You can add -T{N} where {N} stands for count of threads to use. 0 will use all available threads. +REM Pay attention to memory usage, -9eT4 uses over 5GB of RAM, but -9eT1 uses 700MB in my test. +REM Lowering compression preset will also decrease memory usage significantly. + +%TAR% cJf %FILE_NAME% cov-int +IF %ERRORLEVEL% NEQ 0 ( + REM Fallback for 32-bit version of xz. + CALL "%COMMON%" :SubMsg "WARNING" "Fallback for 32-bit xz. Trying again with 'XZ_OPT=-7e'..." + SET "XZ_OPT=-7e" + %TAR% cJf %FILE_NAME% cov-int +) + +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "WARNING" "tar failed. Trying 7-zip..." & GOTO SevenZip) GOTO Upload :SevenZip -CALL :SubDetectSevenzipPath - -rem Coverity is totally bogus with lzma... -rem And since I cannot replicate the arguments with 7-Zip, just use tar/gzip. -IF EXIST "%SEVENZIP%" ( - "%SEVENZIP%" a -ttar "MPC-HC.tar" "cov-int" - "%SEVENZIP%" a -tgzip "MPC-HC.tgz" "MPC-HC.tar" - IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" - GOTO Upload -) +CALL "%COMMON%" :SubDetectSevenzipPath +IF NOT EXIST "%SEVENZIP%" (CALL "%COMMON%" :SubMsg "ERROR" "7-zip not found." & EXIT /B) + +SET "FILE_NAME=MPC-HC.tgz" +REM 7-Zip doesn't support tarball compliant LZMA2 archives, just use tar/gzip. +"%SEVENZIP%" a -ttar "MPC-HC.tar" "cov-int" +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "7-zip failed." & EXIT /B) +"%SEVENZIP%" a -tgzip "%FILE_NAME%" "MPC-HC.tar" +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "7-zip failed." & EXIT /B) +IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" +GOTO Upload :Upload CALL "..\build.bat" GetVersion -CALL :SubDetectCurl -%CURL% --form project=MPC-HC --form token=%COV_TOKEN% --form email=%COV_EMAIL% --form file=@MPC-HC.lzma --form version=%MPCHC_HASH% http://scan5.coverity.com/cgi-bin/upload.py +CALL "%COMMON%" :SubDetectCurl +IF NOT EXIST "%CURL%" (CALL "%COMMON%" :SubMsg "WARNING" "curl not found. Upload aborted." & GOTO End) +IF NOT DEFINED COV_TOKEN (CALL "%COMMON%" :SubMsg "WARNING" "COV_TOKEN not defined. Upload aborted." & GOTO End) +IF NOT DEFINED COV_EMAIL (CALL "%COMMON%" :SubMsg "WARNING" "COV_EMAIL not defined. Upload aborted." & GOTO End) +%CURL% --form token=%COV_TOKEN% --form email=%COV_EMAIL% --form file=@%FILE_NAME% --form version=%MPCHC_HASH% https://scan.coverity.com/builds?project=MPC-HC -o cov_upload.log GOTO End -:SubDetectSevenzipPath -FOR %%G IN (7z.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR %%G IN (7za.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR /F "tokens=2*" %%A IN ( - 'REG QUERY "HKLM\SOFTWARE\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ" ^|^| - REG QUERY "HKLM\SOFTWARE\Wow6432Node\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "SEVENZIP=%%B\7z.exe" -EXIT /B - - -:SubDetectCurl -IF EXIST curl.exe (SET "CURL=curl.exe" & EXIT /B) -IF EXIST "%CURL_PATH%\curl.exe" (SET "CURL=%CURL_PATH%\curl.exe" & EXIT /B) -FOR %%G IN (curl.exe) DO (SET "CURL_PATH=%%~$PATH:G") -IF EXIST "%CURL_PATH%" (SET "CURL=%CURL_PATH%" & EXIT /B) -EXIT /B - - :End POPD -ECHO. & ECHO Press any key to close this window... +CALL "%COMMON%" :SubMsg "INFO" "Done. Press any key to exit..." PAUSE >NUL ENDLOCAL EXIT /B |