Notepad3/Build/make_zip.bat
2018-11-06 22:54:15 +02:00

177 lines
5.3 KiB
Batchfile

@ECHO OFF
rem ******************************************************************************
rem *
rem * Notepad3
rem *
rem * make_zip.bat
rem * Batch file for creating the zip packages
rem *
rem * See License.txt for details about distribution and modification.
rem *
rem * (c) Rizonesoft 2008-2016
rem * https://rizonesoft.com
rem *
rem ******************************************************************************
SETLOCAL ENABLEEXTENSIONS
CD /D %~dp0
rem Check for the help switches
IF /I "%~1" == "help" GOTO SHOWHELP
IF /I "%~1" == "/help" GOTO SHOWHELP
IF /I "%~1" == "-help" GOTO SHOWHELP
IF /I "%~1" == "--help" GOTO SHOWHELP
IF /I "%~1" == "/?" GOTO SHOWHELP
rem IF EXIST "%~dp0..\signinfo_notepad3.txt" SET "SIGN=True"
SET INPUTDIRx86=bin\Release_x86_v141
SET INPUTDIRx64=bin\Release_x64_v141
SET "TEMP_NAME=temp_zip"
IF NOT EXIST "..\%INPUTDIRx86%\Notepad3.exe" CALL :SUBMSG "ERROR" "Compile Notepad3 x86 first!"
IF NOT EXIST "..\%INPUTDIRx86%\minipath.exe" CALL :SUBMSG "ERROR" "Compile MiniPath x86 first!"
IF NOT EXIST "..\%INPUTDIRx64%\Notepad3.exe" CALL :SUBMSG "ERROR" "Compile Notepad3 x64 first!"
IF NOT EXIST "..\%INPUTDIRx64%\minipath.exe" CALL :SUBMSG "ERROR" "Compile MiniPath x64 first!"
CALL :SubGetVersion
CALL :SubDetectSevenzipPath
IF /I "%SEVENZIP%" == "" CALL :SUBMSG "ERROR" "7za wasn't found!"
REM IF /I "%SIGN%" == "True" CALL :SubSign %INPUTDIRx86%
REM IF /I "%SIGN%" == "True" CALL :SubSign %INPUTDIRx64%
CALL :SubZipFiles %INPUTDIRx86% x86
CALL :SubZipFiles %INPUTDIRx64% x64
rem Compress everything into a single ZIP file
PUSHD "packages"
IF EXIST "Notepad3_%NP2_VER%.zip" DEL "Notepad3_%NP2_VER%.zip"
IF EXIST "%TEMP_NAME%" RD /S /Q "%TEMP_NAME%"
IF NOT EXIST "%TEMP_NAME%" MD "%TEMP_NAME%"
REM IF EXIST "Notepad3_%NP2_VER%*.exe" COPY /Y /V "Notepad3_%NP2_VER%*.exe" "%TEMP_NAME%\" >NUL
IF EXIST "Notepad3_%NP2_VER%*.zip" COPY /Y /V "Notepad3_%NP2_VER%*.zip" "%TEMP_NAME%\" >NUL
PUSHD "%TEMP_NAME%"
"%SEVENZIP%" a -tzip -mx=9 Notepad3_%NP2_VER%.zip * >NUL
IF %ERRORLEVEL% NEQ 0 CALL :SUBMSG "ERROR" "Compilation failed!"
CALL :SUBMSG "INFO" "Notepad3_%NP2_VER%.zip created successfully!"
MOVE /Y "Notepad3_%NP2_VER%.zip" ".." >NUL
POPD
IF EXIST "%TEMP_NAME%" RD /S /Q "%TEMP_NAME%"
POPD
:END
TITLE Finished!
ECHO.
ENDLOCAL
EXIT /B
:SubZipFiles
SET "ZIP_NAME=Notepad3_%NP2_VER%_%2%SUFFIX%"
TITLE Creating %ZIP_NAME%.zip...
CALL :SUBMSG "INFO" "Creating %ZIP_NAME%.zip..."
IF EXIST "%TEMP_NAME%" RD /S /Q "%TEMP_NAME%"
IF NOT EXIST "%TEMP_NAME%" MD "%TEMP_NAME%"
IF NOT EXIST "Packages" MD "Packages"
FOR %%A IN ("Changes.txt" "License.txt" "Readme.txt" "Notepad3.ini" "minipath.ini"^
"..\%1\ced.exe" "..\%1\Notepad3.exe" "..\%1\np3encrypt.exe"^
"..\%1\minipath.exe") DO COPY /Y /V "%%A" "%TEMP_NAME%\"
SET "LNG=%TEMP_NAME%\lng"
IF NOT EXIST %LNG% MD %LNG%
XCOPY /E /Y /V "..\%1\lng" "%LNG%" /EXCLUDE:Ignore.txt
SET "FAVORITES=%TEMP_NAME%\Favorites"
IF NOT EXIST "%FAVORITES%" MD "%FAVORITES%"
PUSHD "%TEMP_NAME%"
"%SEVENZIP%" a -tzip -mx=9^
"%ZIP_NAME%.zip" "License.txt" "Notepad3.exe" "Notepad3.ini" "Changes.txt"^
"Readme.txt" "Favorites" "minipath.exe" "minipath.ini" "np3encrypt.exe" "ced.exe" "lng">NUL
IF %ERRORLEVEL% NEQ 0 CALL :SUBMSG "ERROR" "Compilation failed!"
CALL :SUBMSG "INFO" "%ZIP_NAME%.zip created successfully!"
MOVE /Y "%ZIP_NAME%.zip" "..\packages" >NUL
POPD
IF EXIST "%TEMP_NAME%" RD /S /Q "%TEMP_NAME%"
EXIT /B
: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
:SubGetVersion
rem Get the version
FOR /F "tokens=3,4 delims= " %%K IN (
'FINDSTR /I /L /C:"define VERSION_MAJOR" "..\src\VersionEx.h"') DO (SET "VerMajor=%%K")
FOR /F "tokens=3,4 delims= " %%K IN (
'FINDSTR /I /L /C:"define VERSION_MINOR" "..\src\VersionEx.h"') DO (SET "VerMinor=%%K")
FOR /F "tokens=3,4 delims= " %%K IN (
'FINDSTR /I /L /C:"define VERSION_REV" "..\src\VersionEx.h"') DO (SET "VerRev=%%K")
FOR /F "tokens=3,4 delims= " %%K IN (
'FINDSTR /I /L /C:"define VERSION_BUILD" "..\src\VersionEx.h"') DO (SET "VerBuild=%%K")
SET NP2_VER=%VerMajor%.%VerMinor%.%VerRev%.%VerBuild%
EXIT /B
:SubSign
REM IF %ERRORLEVEL% NEQ 0 EXIT /B
REM %1 is the subfolder
REM CALL "%~dp0sign.bat" "..\%1\Notepad2.exe" || (CALL :SUBMSG "ERROR" "Problem signing ..\%1\Notepad2.exe" & GOTO Break)
REM CALL :SUBMSG "INFO" "..\%1\Notepad2.exe signed successfully."
REM :Break
REM EXIT /B
:SHOWHELP
TITLE %~nx0 %1
ECHO. & ECHO.
ECHO Usage: %~nx0 [VS2010^|VS2012^|VS2013^|VS2015^|WDK]
ECHO.
ECHO Notes: You can also prefix the commands with "-", "--" or "/".
ECHO The arguments are not case sensitive.
ECHO. & ECHO.
ECHO Executing %~nx0 without any arguments is equivalent to "%~nx0 WDK"
ECHO.
ENDLOCAL
EXIT /B
:SUBMSG
ECHO. & ECHO ______________________________
ECHO [%~1] %~2
ECHO ______________________________ & ECHO.
IF /I "%~1" == "ERROR" (
PAUSE
EXIT
) ELSE (
EXIT /B
)