Index: ext/gmock/gmock.vc140.vcxproj =================================================================== diff -u -N -rd6c3523b8a96c26c0c448dc35964d172661e9be5 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- ext/gmock/gmock.vc140.vcxproj (.../gmock.vc140.vcxproj) (revision d6c3523b8a96c26c0c448dc35964d172661e9be5) +++ ext/gmock/gmock.vc140.vcxproj (.../gmock.vc140.vcxproj) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -43,46 +43,46 @@ StaticLibrary - v140_xp + v120_xp Unicode true StaticLibrary - v140_xp + v120_xp Unicode true StaticLibrary - v140_xp + v120_xp Unicode StaticLibrary - v140_xp + v120_xp Unicode StaticLibrary - v140_xp + v120_xp Unicode true StaticLibrary - v140_xp + v120_xp Unicode true StaticLibrary - v140_xp + v120_xp Unicode StaticLibrary - v140_xp + v120_xp Unicode Index: ext/sqlite3/sqlite3.vc140.vcxproj =================================================================== diff -u -N -rd6c3523b8a96c26c0c448dc35964d172661e9be5 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- ext/sqlite3/sqlite3.vc140.vcxproj (.../sqlite3.vc140.vcxproj) (revision d6c3523b8a96c26c0c448dc35964d172661e9be5) +++ ext/sqlite3/sqlite3.vc140.vcxproj (.../sqlite3.vc140.vcxproj) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -43,46 +43,46 @@ DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode Index: scripts2015/config.bat =================================================================== diff -u -N --- scripts2015/config.bat (revision 0) +++ scripts2015/config.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,53 @@ +@echo off +SET ReposCH=https://svn.copyhandler.com/svn/copyhandler +SET ReposIcpf=https://svn.copyhandler.com/svn/libicpf +SET ReposIctranslate=https://svn.copyhandler.com/svn/libictranslate + +SET CurrentDir=%CD% +SET ScriptDir=%CurrentDir% +SET CHRootDir=%CurrentDir%\.. +SET OutputDir=%CurrentDir%\out +SET TmpDir=%CurrentDir%\tmp + +SET VSInstallDirX64=%ProgramFiles%\Microsoft Visual Studio 14.0 +SET ProgramFilesX86=%ProgramFiles% + +SET LC_MESSAGES=en_EN + +rem NOTE: Strange construct here because of strange behaviour of %ProgramFiles(x86)% which loses last parenthesis otherwise +if "%ProgramFiles(x86)%" == "" SET VSInstallDirX86=%ProgramFiles%\Microsoft Visual Studio 14.0 +if NOT "%ProgramFiles(x86)%" == "" SET VSInstallDirX86=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0 +if NOT "%ProgramFiles(x86)%" == "" SET ProgramFilesX86=%ProgramFiles(x86)% + +if not exist "%ScriptDir%\config.bat" ( + echo ERROR: This script needs to be called from its directory. + exit /b 1 +) + +rem Detect 7-zip location +SET SEVENZIPEXE= +for %%X in (7z.exe) do (set SEVENZIPEXE=%%~$PATH:X) +if "%SEVENZIPEXE%" == "" set SEVENZIPEXE=%ProgramFiles%\7-Zip\7z.exe +if not exist "%SEVENZIPEXE%" ( + echo 7-zip executable is not in the PATH nor at its default location. Please install 7-zip. + exit /b 1 +) + +rem Detect inno setup compiler +SET ISCCEXE= +for %%X in (iscc.exe) do (set ISCCEXE=%%~$PATH:X) +if "%ISCCEXE%" == "" set ISCCEXE=%ProgramFilesX86%\Inno Setup 5\iscc.exe +if not exist "%ISCCEXE%" ( + echo Inno setup compiler executable is not in the PATH nor at its default location. Please install Inno Setup. + exit /b 1 +) + +SET SVNINDEXCMD= +for %%X in (svnindex.cmd) do (set SVNINDEXCMD=%%~$PATH:X) +if "%SVNINDEXCMD%" == "" set SVNINDEXCMD=%ProgramFiles%\Windows Kits\8.1\Debuggers\x64\srcsrv\svnindex.cmd +if not exist "%SVNINDEXCMD%" ( + echo svnindex.cmd not found in PATH environment variable nor in its default location. Please install Debugging tools for Windows. + exit /b 1 +) + +exit /b 0 Index: scripts2015/internal/clear_env.bat =================================================================== diff -u -N --- scripts2015/internal/clear_env.bat (revision 0) +++ scripts2015/internal/clear_env.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,60 @@ +@echo off + +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +rem Setup environment +if exist "%TmpDir%" ( + echo * Removing temporary directory... + + cd "%TmpDir%\.." + + rmdir /S /Q "%TmpDir%" >nul + if exist "%TmpDir%" ( + rem Wait for a while for system to delete the files + timeout 2 /NOBREAK >nul + ) + if exist "%TmpDir%" ( + echo ERROR: Deleting the old temporary folder failed. + exit /b 1 + ) +) + +if NOT "%1" == "/skip_create" ( + if exist "%OutputDir%" ( + echo * Removing OutputDirectory... + rmdir /S /Q "%OutputDir%" >nul + if exist "%OutputDir%" ( + echo ERROR: Deleting the old output folder failed. + exit /b 1 + ) + ) + + mkdir "%TmpDir%" + if not exist "%TmpDir%" ( + echo ERROR: Creating temporary folder failed. + exit /b 1 + ) + + mkdir "%OutputDir%" + if not exist "%OutputDir%" ( + echo ERROR: Creating temporary folder failed. + exit /b 1 + ) + + mkdir "%TmpDir%\32bit" + if not exist "%TmpDir%\32bit" ( + echo ERROR: Creating temporary 32bit folder failed. + goto error + ) + + mkdir "%TmpDir%\64bit" + if not exist "%TmpDir%\64bit" ( + echo ERROR: Creating temporary 64bit folder failed. + goto error + ) +) + +exit /b 0 Index: scripts2015/internal/detect_incorrect_manifest.bat =================================================================== diff -u -N --- scripts2015/internal/detect_incorrect_manifest.bat (revision 0) +++ scripts2015/internal/detect_incorrect_manifest.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,69 @@ +@echo off + +setlocal ENABLEDELAYEDEXPANSION + +rem Validate input parameters +if [%1] == [] ( + echo Usage: detect_incorrect_manifest.bat path_to_exe_dll_file + goto end +) + +rem initialize +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +call internal\prepare_env.bat +if errorlevel 1 ( + goto error +) + +if not exist "%VS120COMNTOOLS%\vsvars32.bat" ( + echo ERROR: Can't find the vsvars32.bat file. + goto error +) else ( + call "%VS120COMNTOOLS%\vsvars32.bat" >nul +) + +rem process input path +SET InputFile=%~1 +SET TmpManifestLocation=%TmpDir%\extracted.manifest + +rem dll or exe? +if NOT "%InputFile%" == "!InputFile:.dll=dummy!" ( + rem this is a dll + SET ResID=2 +) else if NOT "%InputFile%" == "!InputFile:.exe=dummy!" ( + rem exe file + SET ResID=1 +) else ( + echo ERROR: Unknown file type encountered. + goto error +) + +mt.exe -nologo -inputresource:"%InputFile%";#%ResID% -out:"%TmpManifestLocation%" +if errorlevel 1 ( + echo ERROR: cannot extract manifest from file %InputFile%. + goto error +) + +SET _command=type "%TmpManifestLocation%" + +rem Currently we expect to have only 9.0.30729.5570 referenced in the manifest; if there is any older version, then some library linked with the project uses outdated version (boost?) +for %%v in ("9.0.21022.8" "9.0.30411" "9.0.30729.1" "9.0.30729.4148") do ( + for /f %%a in ('%_command% ^| find %%v') do ( + if NOT "%%a" == "0" ( + echo ERROR: %~Nx1 references an old version of MFC ^(%%v^) + goto error + ) + ) +) + +goto end + +:error +exit /b 1 + +:end +exit /b 0 Index: scripts2015/internal/detect_internal_version.bat =================================================================== diff -u -N --- scripts2015/internal/detect_internal_version.bat (revision 0) +++ scripts2015/internal/detect_internal_version.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,161 @@ +@echo off + +setlocal ENABLEDELAYEDEXPANSION + +rem Validate input parameters +if [%1] == [] ( + echo Usage: detect_version_internal.bat path + goto end +) + +echo * Detecting type of the working copy +set _svn_info=svn info "%1" +for /f "delims=" %%a in ('!_svn_info! ^|find "URL"') do set _SVNUrl=%%a +if errorlevel 1 ( + echo Problem with retrieving working copy URL. + goto error +) + +if NOT "!_SVNUrl!" == "!_SVNUrl:trunk=dummy!" ( + SET _ReleaseType=internal +) else if NOT "!_SVNUrl!" == "!_SVNUrl:tags=dummy!" ( + SET _ReleaseType=tag +) else ( + echo Cannot detect type of the working copy. Directory not under version control system? + exit /b 1 +) + +rem In case of tagged releases we scan working copy for revision number only to get the modification flag +echo * Scanning svn working copy for revision number +rem Get SVN version +SET _svn_version=svnversion -n "%1" +for /f %%a in ('!_svn_version!') do set _SVNCalculatedVersion=%%a +if errorlevel 1 ( + echo Problem with scanning svn WC for current version. + goto error +) +if "!_SVNCalculatedVersion!" == "" ( + echo Can't get the major version. + goto error +) + +rem Which format does svn version have? +rem When version contain colon, then take only the newer revision from it +if NOT "!_SVNCalculatedVersion!" == "!_SVNCalculatedVersion::=dummy!" ( + SET _SVNCalculatedVersion=!_SVNCalculatedVersion:*:=! +) + +rem If svn version contains S (switched), then just ignore this char +if NOT "!_SVNCalculatedVersion!" == "!_SVNCalculatedVersion:S=dummy!" ( + SET _SVNCalculatedVersion=!_SVNCalculatedVersion:S=! +) + +rem If we have only partial working copy (P), then fail +if NOT "!_SVNCalculatedVersion!" == "!_SVNCalculatedVersion:P=dummy!" ( + echo Only partial working copy detected - cannot detect version. + goto error +) + +rem If we have local modifications, then remember it, so we can modify the version number/string later +if NOT "!_SVNCalculatedVersion!" == "!_SVNCalculatedVersion:M=dummy!" ( + SET _SVNCalculatedVersion=!_SVNCalculatedVersion:M=! + SET _SVNIsModified=1 +) else ( + SET _SVNIsModified=0 +) + +echo * Detecting version numbers contained in version.h +set _ver_cmd=type "%1\src\common\version.h" + +for /f "tokens=3 delims= " %%a in ('!_ver_cmd! ^|find "define PRODUCT_VERSION1 "') do set _MajorVersion=%%a +if errorlevel 1 ( + echo Problem with retrieving _MajorVersion. + goto error +) +if "!_MajorVersion!" == "" ( + echo Can't get the major version. + goto error +) + +set _ver_cmd=type "%1\src\common\version.h" +for /f "tokens=3 delims= " %%a in ('!_ver_cmd! ^|find "define PRODUCT_VERSION2 "') do set _MinorVersion=%%a +if errorlevel 1 ( + echo Problem with retrieving _MinorVersion. + goto error +) +if "!_MinorVersion!" == "" ( + echo Can't get the major version. + goto error +) + +if "!_ReleaseType!" == "tag" ( + rem If handling the tagged revision, overwrite !_SVNVersion!, %_CustomVersion% and !_TextVersion! with the values contained in version.h + set _ver_cmd2=type "%1\src\common\version.h" + for /f "tokens=3 delims= " %%a in ('!_ver_cmd2! ^|find "define PRODUCT_VERSION3 "') do set _SVNVersion=%%a + if errorlevel 1 ( + echo Problem with retrieving svn version. + goto error + ) + if "!_SVNVersion!" == "" ( + echo Can't get the svn version. + goto error + ) + + set _ver_cmd2=type "%1\src\common\version.h" + for /f "tokens=3 delims= " %%a in ('!_ver_cmd2! ^|find "define PRODUCT_VERSION4 "') do set _CustomVersion=%%a + if errorlevel 1 ( + echo Problem with retrieving custom version. + goto error + ) + if "!_CustomVersion!" == "" ( + echo Can't get the custom version. + goto error + ) + + set _ver_cmd2=type "%1\src\common\version.h" + for /f "tokens=3 delims= " %%a in ('!_ver_cmd2! ^|find "define PRODUCT_VERSION "') do set _TextVersion=%%a + if errorlevel 1 ( + echo Problem with retrieving text version. + goto error + ) + if "!_TextVersion!" == "" ( + echo Can't get the text version. + goto error + ) + + rem Get rid of the '"' characters from the _TextVersion + if "!_SVNIsModified!" == "0" ( + SET _TextVersion=!_TextVersion:"=! + ) else ( + SET _TextVersion=!_TextVersion:"=!_M + ) +) else ( + SET _SVNVersion=!_SVNCalculatedVersion! + rem For internal version we format the text version on our own + if "!_SVNIsModified!" == "0" ( + SET _TextVersion=!_MajorVersion!.!_MinorVersion!internal-svn!_SVNVersion! + ) else ( + SET _TextVersion=!_MajorVersion!.!_MinorVersion!internal-svn!_SVNVersion!_M + ) + + if "!_TextVersion!" == "" ( + echo Cannot calculate the text version. + goto error + ) +) + +rem Overwrite %_CustomVersion% with !_SVNIsModified! +SET _CustomVersion=!_SVNIsModified! + +endlocal & call SET CHMajorVersion=%_MajorVersion%& SET CHMinorVersion=%_MinorVersion%& SET CHSVNVersion=%_SVNVersion%& SET CHCustomVersion=%_CustomVersion%& SET CHTextVersion=%_TextVersion%& SET CHReleaseType=%_ReleaseType% + +echo * Detected current working copy (%CHReleaseType%) at %CHMajorVersion%.%CHMinorVersion%.%CHSVNVersion%.%CHCustomVersion% (%CHTextVersion%) + +goto end + +:error +rem Get outside of the temp directory to be able to delete it +exit /b 1 + +:end +exit /b 0 Index: scripts2015/internal/embed_srcserver_info.bat =================================================================== diff -u -N --- scripts2015/internal/embed_srcserver_info.bat (revision 0) +++ scripts2015/internal/embed_srcserver_info.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,57 @@ +@echo off + +setlocal ENABLEDELAYEDEXPANSION + +if "%1" == "" ( + echo Usage: embed_srcserver_info.bat path_to_sources + goto end +) + +SET MainProjectDir=%~1 + +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +call internal\prepare_env.bat +if errorlevel 1 ( + goto error +) + +SET _command=call "%SVNINDEXCMD%" /debug /source=%MainProjectDir%\src\ictranslate;%MainProjectDir%\src\libictranslate;%MainProjectDir%\src\libicpf;%MainProjectDir%\src;%MainProjectDir%\ext\sqlite3 /symbols=%MainProjectDir%\bin\release +!_command! >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Error encountered while embedding source server information. See the log below: + type "%TmpDir%\command.log" + exit /b 1 +) + +rem We expect all pdbs to be modified (currently 14 of them - 7/architecture) +SET IndexRes=Undefined +SET _command=type "%TmpDir%\command.log" +for /f %%a in ('!_command! ^| find /c "wrote"') do set IndexRes=%%a +if NOT "!IndexRes!" == "14" ( + echo Some source server information has not been embedded. See the log below: + type "%TmpDir%\command.log" + exit /b 1 +) + +echo ...embedded information in !IndexRes! files. +SET _command=type "%TmpDir%\command.log" +for /f %%a in ('!_command! ^| find /c "ERROR"') do set IndexRes=%%a +if NOT "!IndexRes!" == "0" ( + echo Error encountered when embedding source server information. See the log below: + type "%TmpDir%\command.log" + exit /b 1 +) + +SET _command=type "%TmpDir%\command.log" +for /f %%a in ('!_command! ^| find /c "WARNING"') do set IndexRes=%%a +if NOT "!IndexRes!" == "0" ( + echo Error encountered when embedding source server information. See the log below: + type "%TmpDir%\command.log" + exit /b 1 +) + +exit /b 0 Index: scripts2015/internal/prepare_env.bat =================================================================== diff -u -N --- scripts2015/internal/prepare_env.bat (revision 0) +++ scripts2015/internal/prepare_env.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,43 @@ +@echo off + +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +rem Setup environment +if not exist "%TmpDir%" ( + mkdir "%TmpDir%" + if not exist "%TmpDir%" ( + echo ERROR: Creating temporary folder failed. + exit /b 1 + ) +) + +if not exist "%OutputDir%" ( + mkdir "%OutputDir%" + if not exist "%OutputDir%" ( + echo ERROR: Creating temporary folder failed. See the log below: + type "%TmpDir%\command.log" + exit /b 1 + ) +) + +rem Prepare directories +if not exist "%TmpDir%\32bit" ( + mkdir "%TmpDir%\32bit" + if not exist "%TmpDir%\32bit" ( + echo ERROR: Creating temporary 32bit folder failed. + goto error + ) +) + +if not exist "%TmpDir%\64bit" ( + mkdir "%TmpDir%\64bit" + if not exist "%TmpDir%\64bit" ( + echo ERROR: Creating temporary 64bit folder failed. + goto error + ) +) + +exit /b 0 Index: scripts2015/internal/replace_version.vbs =================================================================== diff -u -N --- scripts2015/internal/replace_version.vbs (revision 0) +++ scripts2015/internal/replace_version.vbs (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,36 @@ +Const ForReading = 1 +Const ForWriting = 2 + +strOldFileName = Wscript.Arguments(0) +strNewFileName = Wscript.Arguments(1) +strMajor = WScript.Arguments(2) +strMinor = WScript.Arguments(3) +strSVN = WScript.Arguments(4) +strCustom = WScript.Arguments(5) +strTextVersion = WScript.Arguments(6) + +' Validate parameters +if strOldFileName = "" or strNewFileName = "" or strMajor = "" or strMinor = "" or strSVN = "" or strCustom ="" or strTextVersion="" then + WScript.echo "Missing input parameters" + return 1 +end if + +Set objFSO = CreateObject("Scripting.FileSystemObject") + +' Read the source file +Set objFile = objFSO.OpenTextFile(strOldFileName, ForReading) + +strText = objFile.ReadAll +objFile.Close + +' Replace the text +strText = Replace(strText, "{major_version}", strMajor) +strText = Replace(strText, "{minor_version}", strMinor) +strText = Replace(strText, "{svn_version}", strSVN) +strText = Replace(strText, "{custom_version}", strCustom) +strText = Replace(strText, "{text_version}", strTextVersion) + +' And write the text +Set objFile = objFSO.OpenTextFile(strNewFileName, ForWriting) +objFile.WriteLine strText +objFile.Close Index: scripts2015/internal/svntag_single.bat =================================================================== diff -u -N --- scripts2015/internal/svntag_single.bat (revision 0) +++ scripts2015/internal/svntag_single.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,48 @@ +@echo off + +setlocal + +if [%1] == [] ( + echo Usage: svntag_single.bat ReposAddress TextVersion + exit /b 1 +) + +SET ReposAddress=%1 +SET TextVersion=%2 + +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +rem partial cleanup +SET CHTmpDir=%TmpDir%\repo-tag-test +if exist "%CHTmpDir%" ( + rmdir /S /Q "%CHTmpDir%" >nul + if exist "%CHTmpDir%" ( + echo ERROR: Deleting the old temporary folder failed. + exit /b 1 + ) +) + +rem check if the project isn't already tagged +svn co "%ReposAddress%/tags/%TextVersion%" "%CHTmpDir%" 2>nul +if errorlevel 1 ( + rem when error, it probably means that the tag does not exist + goto create +) + +rem if we're here, then the tag already exist +echo * The repository already had a tag %TextVersion%. Skipping tagging. +exit /b 0 + +:create +echo * Tagging %ReposAddress% as %TextVersion%... +svn cp -m "Tagged project to %TextVersion%" "%ReposAddress%/trunk/" "%ReposAddress%/tags/%TextVersion%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while tagging %ReposAddress% project. See the log below: + type "%TmpDir%\command.log" + exit /b 1 +) + +exit /b 0 Index: scripts2015/internal/symsrv_add_single_package.bat =================================================================== diff -u -N --- scripts2015/internal/symsrv_add_single_package.bat (revision 0) +++ scripts2015/internal/symsrv_add_single_package.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,71 @@ +@echo off + +rem Mark the changes as local ones +setlocal + +if [%1] == [] ( + echo "Usage: symsrv.bat package_path symsrv_path" + goto end +) + +if [%2] == [] ( + echo "Usage: symsrv.bat package_path symsrv_path" + goto end +) + +echo --- Initializing ----------------------------------------------- +echo * Reading configuration... +call config.bat +if errorlevel 1 ( + goto error +) +echo * Preparing environment... +call internal\prepare_env.bat +if errorlevel 1 ( + goto error +) + +echo --- Processing files -------------------------------------------- +echo * Extracting files... + +SET OutDir=%TmpDir%\symbols +if exist "%OutDir%" ( + rmdir /S /Q "%OutDir%" >nul + if exist "%OutDir%" ( + echo ERROR: Deleting the temporary folder failed. + exit /b 1 + ) +) + +mkdir "%OutDir%" +if errorlevel 1 ( + echo ERROR: Creating temporary directory failed. + goto error +) + +rem Unpack archive +7z x -o%OutDir% %1 >nul +if errorlevel 1 ( + echo ERROR: Unpacking archive failed. + goto error +) + +echo * Adding files to symbol server directory... + +symstore add /r /f "%OutDir%" /s "%~2" /t "Copy Handler" /v "%~1" +if errorlevel 1 ( + echo ERROR: Storing symbols failed. + goto error +) + +echo * Cleaning up files... +rmdir /S /Q "%OutDir%" + +echo * Done + +goto end + +:error +echo * Error processing files. + +:end Index: scripts2015/make_existing_release.bat =================================================================== diff -u -N --- scripts2015/make_existing_release.bat (revision 0) +++ scripts2015/make_existing_release.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,238 @@ +@echo off + +rem Script prepares all packages based on the source code in which this script is placed. + +rem Mark the changes as local ones +setlocal ENABLEDELAYEDEXPANSION + +echo --- Initializing ---------------------------------------------------- +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +echo * Clearing environment... +call internal\clear_env.bat +if errorlevel 1 ( + goto error +) + +echo * Initializing MSBuild environment +if not exist "%VS140COMNTOOLS%\VsMSBuildCmd.bat" ( + echo ERROR: Can't find the vsvars32.bat file. + goto error +) else ( + call "%VS140COMNTOOLS%\VsMSBuildCmd.bat" >nul +) + +set MainProjectDir=%CHRootDir% + +rem Update the version string in the version.h for trunk +echo * Detecting current version information... +call internal\detect_internal_version.bat "%MainProjectDir%" +if errorlevel 1 ( + goto error +) + +if "%CHReleaseType%" == "internal" ( + echo * Updating version information in version.h for the internal release... + cscript //NoLogo internal\replace_version.vbs "%MainProjectDir%\src\common\version.h.template" "%MainProjectDir%\src\common\version.h" !CHMajorVersion! !CHMinorVersion! !CHSVNVersion! !CHCustomVersion! !CHTextVersion! >"%TmpDir%\command.log" + if errorlevel 1 ( + echo ERROR: encountered a problem while updating version information. See the log below: + type "%TmpDir%\command.log" + goto error + ) +) + +echo --- Building solutions ---------------------------------------------- +rem cd "%MainProjectDir%" +echo * Building release... +msbuild "..\msbuild.proj" /t:Release /m:4 >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Build process failed. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo --- Verifying build ------------------------------------------------- +cd %MainProjectDir% +if not exist bin\release ( + echo ERROR: The bin\release directory does not exist. + goto error +) + +cd %MainProjectDir%\scripts + +SET FoundWrongManifest=0 +for %%v in (%MainProjectDir%\bin\release\*.dll %MainProjectDir%\bin\release\*.exe) do ( + echo * Verifying %%~nv%%~xv... + call internal\detect_incorrect_manifest.bat "%%v" + if errorlevel 1 ( + SET FoundWrongManifest=1 + ) +) + +if "!FoundWrongManifest!" == "1" ( + echo ERROR: Incorrect manifest detected in one or more executables. + goto error +) + +if NOT "%SKIPCHSIGNING%" == "1" ( + echo --- Signing executables --------------------------------------------- + signtool sign /t http://time.certum.pl /a "%MainProjectDir%\bin\release\*.dll" "%MainProjectDir%\bin\release\*.exe" 2>"%TmpDir%\command-err.log" + if errorlevel 1 ( + echo ERROR: Cannot sign executables! See the log below: + type "%TmpDir%\command-err.log" + goto error + ) +) else ( + echo WARNING: Signing executables was disabled. +) + +echo --- Preparing packages ---------------------------------------------- +echo * Create source package for version %CHTextVersion%... + +rem Export the current working copy to a separate directory to avoid including unnecessary files in the source archive +SET CHSrcDir="%TmpDir%\ch-src" +svn export "%MainProjectDir%" "%CHSrcDir%" >"%TmpDir%\command.log" 2>"%TmpDir%\command-err.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while exporting local sources to a separate location. See the log below: + type "%TmpDir%\command-err.log" + goto error +) + +cd %CHSrcDir% + +"%SEVENZIPEXE%" a "%OutputDir%\chsrc-%CHTextVersion%.zip" -tzip -x^^!"scripts\*.bat" -xr^^!".svn" . >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Preparation of the sources failed. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Preparing the symbols package... + +cd %MainProjectDir%\scripts +if "%CHCustomVersion%" == "1" ( + if "%CHReleaseType%" == "internal" ( + echo * WARNING: Skipping embedding source server info in PDB files due to local sources modifications... + ) else ( + echo * ERROR: Tagged sources contains local modifications - cannot embed source server info in PDB files... + goto error + ) +) else ( + echo * Embedding source server info in PDB files... + call internal\embed_srcserver_info.bat "%MainProjectDir%" + + if errorlevel 1 ( + echo ERROR: encountered a problem while embedding source server information in debug symbols. + goto error + ) +) + +cd %MainProjectDir%\bin\release + +"%SEVENZIPEXE%" a "%OutputDir%\ch_symbols-%CHTextVersion%.zip" -tzip "*.pdb" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Could not create symbols archive. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Preparing the installer package... +cd %MainProjectDir% +if not exist scripts ( + echo ERROR: The scripts directory does not exist. + goto error +) + +cd %MainProjectDir%\scripts + +"%ISCCEXE%" setup.iss /o%OutputDir% >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Preparation of the installer version failed. See the log below: + type "%TmpDir%\command.log" + goto error +) + +if NOT "%SKIPCHSIGNING%" == "1" ( + echo * Signing installer package... + signtool sign /t http://time.certum.pl /a "%OutputDir%\*.exe" 2>"%TmpDir%\command-err.log" + if errorlevel 1 ( + echo ERROR: Cannot sign executables! See the log below: + type "%TmpDir%\command-err.log" + goto error + ) +) else ( + echo WARNING: Signing executables was disabled. +) + +echo * Preparing zip package... +cd %MainProjectDir% + +rem Prepare files +SET Res=0 +xcopy "bin\release\ch.exe" "%TmpDir%\32bit\" >"%TmpDir%\command.log" || SET Res=1 +xcopy "License.txt" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\chext.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libicpf32u.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libchcore32u.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libictranslate32u.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\ictranslate.exe" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\sqlite3_32.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "scripts\portable_config\ch.xml" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%VSInstallDirX86%\VC\redist\x86\Microsoft.VC140.CRT\*" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%VSInstallDirX86%\VC\redist\x86\Microsoft.VC140.MFC\*" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%ProgramFilesX86%\Windows Kits\8.1\Debuggers\x86\dbghelp.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%UniversalCRTSdkDir%\Redist\ucrt\DLLs\x86\*.dll" "%TmpDir%\32bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy /E /I "bin\release\help" "%TmpDir%\32bit\help" >>"%TmpDir%\command.log" || SET Res=1 +xcopy /E /I "bin\release\langs" "%TmpDir%\32bit\langs" >>"%TmpDir%\command.log" || SET Res=1 + +xcopy "bin\release\ch64.exe" "%TmpDir%\64bit\" >"%TmpDir%\command.log" || SET Res=1 +xcopy "License.txt" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\chext64.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libicpf64u.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libchcore64u.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\libictranslate64u.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\ictranslate64.exe" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "bin\release\sqlite3_64.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "scripts\portable_config\ch.xml" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%VSInstallDirX86%\VC\redist\x64\Microsoft.VC140.CRT\*" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%VSInstallDirX86%\VC\redist\x64\Microsoft.VC140.MFC\*" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%ProgramFilesX86%\Windows Kits\8.1\Debuggers\x64\dbghelp.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy "%UniversalCRTSdkDir%\Redist\ucrt\DLLs\x64\*.dll" "%TmpDir%\64bit\" >>"%TmpDir%\command.log" || SET Res=1 +xcopy /E /I "bin\release\help" "%TmpDir%\64bit\help" >>"%TmpDir%\command.log" || SET Res=1 +xcopy /E /I "bin\release\langs" "%TmpDir%\64bit\langs" >>"%TmpDir%\command.log" || SET Res=1 + +if %Res% NEQ 0 ( + echo ERROR: Detected a problem when copying files. See the log below: + type "%TmpDir%\command.log" + goto error +) + +cd "%TmpDir%\" + +"%SEVENZIPEXE%" a -tzip "%OutputDir%\ch-%CHTextVersion%.zip" 32bit 64bit >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Could not create win32 zip archive. See the log below: + type "%TmpDir%\command.log" + goto error +) + +cd "%ScriptDir%" + +echo * Done... + +goto cleanup + +:error +echo * Clearing environment... +call internal\clear_env.bat /skip_create +exit /b 1 + +:cleanup +echo * Clearing environment... +call internal\clear_env.bat /skip_create + +:end +exit /b 0 Index: scripts2015/make_release.bat =================================================================== diff -u -N --- scripts2015/make_release.bat (revision 0) +++ scripts2015/make_release.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,60 @@ +@echo off + +rem Scripts checks out trunk or specific tag of CH and launches preparation of the packages for the retrieved version. + +rem Mark the changes as local ones +setlocal + +rem Check input parameter +if [%1] == [] ( + echo Usage: make_release.bat ^ + exit /b 1 +) + +echo --- Initializing ----------------------------------------------- +echo * Reading configuration... +call config.bat +if errorlevel 1 ( + goto error +) + +echo * Preparing environment... +call internal\prepare_env.bat +if errorlevel 1 ( + goto error +) + +echo --- Retrieving code ---------------------------------- +if "%1" == "trunk" ( + SET CHRepositoryAddress=%ReposCH%/trunk +) else ( + SET CHRepositoryAddress=%ReposCH%/tags/%1 +) + +echo * Checking out %CHRepositoryAddress%... +SET CHTmpDir=%TmpDir%\ch-svn +svn co "%CHRepositoryAddress%" "%CHTmpDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Could not check out source code. See the log below: + type "%TmpDir%\command.log" + goto error +) + +rem call the original version of the script that was used to prepare the version (might not work for versions prior to 1.40) +cd %CHTmpDir%\scripts +call make_existing_release.bat +if errorlevel 1 ( + goto error +) + +goto cleanup + +:error +call internal\clear_env.bat /skip_create +exit /b 1 + +:cleanup +call internal\clear_env.bat /skip_create + +:end +exit /b 0 Index: scripts2015/portable_config/ch.xml =================================================================== diff -u -N --- scripts2015/portable_config/ch.xml (revision 0) +++ scripts2015/portable_config/ch.xml (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,2 @@ + + \ No newline at end of file Index: scripts2015/setup.iss =================================================================== diff -u -N --- scripts2015/setup.iss (revision 0) +++ scripts2015/setup.iss (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,171 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! +#define SETUP_COMPILER 1 +#include "../src/common/version.h" +#define MyAppName PRODUCT_NAME +#define MyAppVerName PRODUCT_NAME + " " + PRODUCT_VERSION +#define MyAppPublisher "Józef Starosczyk" +#define MyAppURL "http://www.copyhandler.com" + +#define InstallerFilename "chsetup-" + PRODUCT_VERSION + +#define ExeFilename32 "ch.exe" +#define ExeFilename64 "ch64.exe" +#define ShellExtFilename32 "chext.dll" +#define ShellExtFilename64 "chext64.dll" +#define LibicpfFilename32 "libicpf32u.dll" +#define LibicpfFilename64 "libicpf64u.dll" +#define LibCHCoreFilename32 "libchcore32u.dll" +#define LibCHCoreFilename64 "libchcore64u.dll" +#define LibictranslateFilename32 "libictranslate32u.dll" +#define LibictranslateFilename64 "libictranslate64u.dll" +#define ICTranslateFilename32 "ictranslate.exe" +#define ICTranslateFilename64 "ictranslate64.exe" +#define SQLite32 "sqlite3_32.dll" +#define SQLite64 "sqlite3_64.dll" +#define MSRedistDir32 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86" +#define MSRedistDir64 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64" +#define DbgHelp32 "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86" +#define DbgHelp64 "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64" +#define UCrtDir32 "C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86" +#define UCrtDir64 "C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64" + +[Setup] +AppName={#MyAppName} +AppVerName={#MyAppVerName} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={pf}\{#MyAppName} +DefaultGroupName={#MyAppName} +AllowNoIcons=true +LicenseFile=..\License.txt +OutputDir=.\ +OutputBaseFilename={#InstallerFilename} +Compression=lzma/ultra +SolidCompression=true +AppMutex=_Copy handler_ instance +ShowLanguageDialog=auto +AppID={{9CF6A157-F0E8-4216-B229-C0CA8204BE2C} +InternalCompressLevel=ultra +AppCopyright={#COPYRIGHT_INFO} +AppVersion={#PRODUCT_VERSION} +UninstallDisplayIcon={app}\{#ExeFilename32} +AppContact=ixen(at)copyhandler(dot)com +VersionInfoVersion= +VersionInfoTextVersion={#PRODUCT_VERSION} +VersionInfoCopyright={#COPYRIGHT_INFO} +ChangesEnvironment=true +ArchitecturesInstallIn64BitMode=x64 + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" +Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" +Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl" +Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" +Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl" +Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" +Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl" +Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" +Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl" +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "serbiancyrillic"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl" +Name: "serbianlatin"; MessagesFile: "compiler:Languages\SerbianLatin.isl" +Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl" + +[Tasks] +Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked +Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked +Name: startatboot; Description: {cm:StartAtBoot}; Flags: unchecked + +[Files] +Source: "..\bin\release\help\*.chm"; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "..\bin\release\langs\*.lng"; DestDir: "{app}\langs"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "..\License.txt"; DestDir: "{app}"; Flags: ignoreversion + +Source: "..\bin\release\{#ExeFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#ExeFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#ShellExtFilename32}"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#ShellExtFilename64}"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#LibicpfFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#LibicpfFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#LibCHCoreFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#LibCHCoreFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#LibictranslateFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#LibictranslateFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#ICTranslateFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#ICTranslateFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\bin\release\{#SQLite32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\release\{#SQLite64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode + +Source: "{#MSRedistDir32}\Microsoft.VC140.CRT\*"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "{#MSRedistDir64}\Microsoft.VC140.CRT\*"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "{#MSRedistDir32}\Microsoft.VC140.MFC\*"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "{#MSRedistDir64}\Microsoft.VC140.MFC\*"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "{#UCrtDir32}\*"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "{#UCrtDir64}\*"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode + +Source: "{#DbgHelp32}\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "{#DbgHelp64}\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode + +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: {group}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; WorkingDir: {app} +Name: {group}\{cm:TranslateCopyHandler}; Filename: {app}\{code:ExpandArch|ICTranslateFilename}; Parameters: """{app}\langs\english.lng"""; WorkingDir: {app}\lang +Name: {group}\{cm:UninstallCopyHandler}; Filename: {uninstallexe}; WorkingDir: {app} +Name: {userdesktop}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: desktopicon; WorkingDir: {app} +Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: quicklaunchicon; WorkingDir: {app} + +[Run] +Filename: "{app}\{code:ExpandArch|ExeFilename}"; Flags: nowait postinstall skipifsilent; Description: "{cm:LaunchProgram,{#MyAppName}}" + +[Registry] + +Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Flags: dontcreatekey deletevalue +Root: HKCU; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Tasks: startatboot; ValueData: {app}\{code:ExpandArch|ExeFilename}; Flags: uninsdeletevalue + +[Dirs] +Name: {app}\help; Flags: uninsalwaysuninstall +Name: {app}\langs; Flags: uninsalwaysuninstall + +[CustomMessages] +TranslateCopyHandler=Translate Copy Handler +polish.TranslateCopyHandler=Przetłumacz program Copy Handler +UninstallCopyHandler=Uninstall Copy Handler +polish.UninstallCopyHandler=Odinstaluj program Copy Handler +StartAtBoot=Run program at system startup +polish.StartAtBoot=Uruchom program przy starcie systemu + +[ThirdParty] +CompileLogMethod=append + +[Code] +function ExpandArch(ConstantStr: String): String; +begin + if Is64BitInstallMode then + begin + case ConstantStr of + 'ExeFilename': Result := '{#ExeFilename64}'; + 'ICTranslateFilename': Result := '{#ICTranslateFilename64}'; + end; + end + else + begin + case ConstantStr of + 'ExeFilename': Result := '{#ExeFilename32}'; + 'ICTranslateFilename': Result := '{#ICTranslateFilename32}'; + end; + end; +end; Index: scripts2015/svntag.bat =================================================================== diff -u -N --- scripts2015/svntag.bat (revision 0) +++ scripts2015/svntag.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,146 @@ +@echo off + +rem Script creates a tag in svn for the alpha/beta/final release (uses the version.h and svn info as the source of information) + +rem Mark the changes as local ones +setlocal + +if [%1] == [] ( + echo Usage: svntag.bat ^ + exit /b 1 +) + +rem This script wasn't tested yet (written 2011-10-22 23:04) +echo --- Initializing ---------------------------------------------------- + +rem Include config +call config.bat +if errorlevel 1 ( + exit /b 1 +) + +call internal\clear_env.bat +if errorlevel 1 ( + echo ERROR: Problem with preparing environment. + goto error +) + +rem checkout ch project (trunk) +echo * Retrieving trunk for CH... +SET CHTmpTrunkDir=%TmpDir%\ch-trunk +svn --ignore-externals co "%ReposCH%/trunk" "%CHTmpTrunkDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: Cannot checkout trunk. See the log below: + type "%TmpDir%\command.log" + goto error +) + +rem detect version (for trunk it should get major.minor from version.h, svn rev from svn revision id) +echo * Detecting trunk version information... +call internal\detect_internal_version.bat "%CHTmpTrunkDir%" +if errorlevel 1 ( + goto error +) + +rem generate the tag to be created for sources +SET /a TagSVNRev=%CHSVNVersion%+2 +SET /a NewTrunkMinor=%CHMinorVersion% +SET /a NewTrunkSVNRev=%TagSVNRev%+1 +SET NewTrunkTextTag=%CHMajorVersion%.%NewTrunkMinor%internal-svn%NewTrunkSVNRev% + +if "%1" == "Final" ( + SET TextTag=%CHMajorVersion%.%CHMinorVersion%Final + SET /a NewTrunkMinor=%CHMinorVersion%+1 +) else if "%1" == "Alpha" ( + SET TextTag=%CHMajorVersion%.%CHMinorVersion%Alpha-svn%TagSVNRev% +) else if "%1" == "Beta" ( + SET TextTag=%CHMajorVersion%.%CHMinorVersion%Beta-svn%TagSVNRev% +) else ( + echo ERROR: Unknown release type specified. + goto error +) + +echo * Tagging projects with %TextTag%... +call internal\svntag_single.bat "%ReposIcpf%" %TextTag% +if errorlevel 1 ( + goto error +) + +call internal\svntag_single.bat "%ReposIctranslate%" %TextTag% +if errorlevel 1 ( + goto error +) + +call internal\svntag_single.bat "%ReposCH%" %TextTag% +if errorlevel 1 ( + goto error +) + +echo * Checking out the tagged ch repository... +SET CHTmpTagDir=%TmpDir%\ch-tagged +svn --ignore-externals co "%ReposCH%/tags/%TextTag%" "%CHTmpTagDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while checking out copyhandler project. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Creating new svn:externals definition... + +echo src/libicpf %ReposIcpf%/tags/%TextTag%/src/libicpf >"%TmpDir%\externals.txt" +echo src/libictranslate %ReposIctranslate%/tags/%TextTag%/src/libictranslate >>"%TmpDir%\externals.txt" +echo src/rc2lng %ReposIctranslate%/tags/%TextTag%/src/rc2lng >>"%TmpDir%\externals.txt" +echo src/ictranslate %ReposIctranslate%/tags/%TextTag%/src/ictranslate >>"%TmpDir%\externals.txt" + +svn propedit --editor-cmd "type %TmpDir%\externals.txt >" svn:externals "%CHTmpTagDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while checking out copyhandler project. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Updating version information for tagged sources... +cscript //NoLogo internal\replace_version.vbs "%CHTmpTagDir%\src\common\version.h.template" "%CHTmpTagDir%\src\common\version.h" %CHMajorVersion% %CHMinorVersion% %TagSVNRev% 0 %TextTag% >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while checking out copyhandler project. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Performing commit of the updated version and svn:externals... +svn commit -m "Updated svn:externals definition" "%CHTmpTagDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while committing changes to repository. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Updating version information for trunk sources (%NewTrunkTextTag%)... +cscript //NoLogo internal\replace_version.vbs "%CHTmpTrunkDir%\src\common\version.h.template" "%CHTmpTrunkDir%\src\common\version.h" %CHMajorVersion% %NewTrunkMinor% %NewTrunkSVNRev% 0 %NewTrunkTextTag% >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while checking out copyhandler project. See the log below: + type "%TmpDir%\command.log" + goto error +) + +echo * Performing commit of the updated version... +svn commit -m "Automatic version bump after tagging %TextTag%" "%CHTmpTrunkDir%" >"%TmpDir%\command.log" +if errorlevel 1 ( + echo ERROR: encountered a problem while committing changes to repository. See the log below: + type "%TmpDir%\command.log" + goto error +) + +goto cleanup + +:error +call internal\clear_env.bat /skip_create + +exit /b 1 + +:cleanup +echo * Cleaning up the temporary files... +call internal\clear_env.bat /skip_create + +:end +exit /b 0 Index: scripts2015/symsrv_add_release.bat =================================================================== diff -u -N --- scripts2015/symsrv_add_release.bat (revision 0) +++ scripts2015/symsrv_add_release.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,41 @@ +@echo off + +rem Mark the changes as local ones +setlocal + +if [%1] == [] ( + echo Usage: symsrv_add_release.bat ^ [dir_with_packages] + goto end +) + +echo --- Initializing ----------------------------------------------- +echo * Reading configuration... +call config.bat +if errorlevel 1 ( + goto error +) + +if NOT [%2] == [] ( + SET PackagesDir=%2 +) else ( + SET PackagesDir=%OutputDir% +) + +echo --- Preparing files -------------------------------------------- +echo * Scanning directory %PackagesDir% for packages... +for /R %PackagesDir% %%f in (*.zip) do ( + echo * Processing package %%f... + call internal\symsrv_add_single_package.bat "%%f" "%1" + if errorlevel 1 ( + goto error + ) +) + +echo * Done + +goto end + +:error + echo ERROR: encountered an error while processing packages. + +:end Index: scripts2015/upload_release.bat =================================================================== diff -u -N --- scripts2015/upload_release.bat (revision 0) +++ scripts2015/upload_release.bat (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -0,0 +1,31 @@ +@echo off + +rem Mark the changes as local ones +setlocal + +echo --- Initializing ----------------------------------------------- +echo * Reading configuration... +call config.bat +if errorlevel 1 ( + goto error +) + +echo --- Uploading files -------------------------------------------- +echo cd uploads >"%TmpDir%\filelist.txt" +for %%f in (out\*.*) do echo put %%f >>"%TmpDir%\filelist.txt" + + +psftp -v -b "%TmpDir%\filelist.txt" ixen@frs.sourceforge.net +if errorlevel 1 ( + goto error +) + +echo * Done + +goto end + +:error +echo * Error uploading files. +del "%TmpDir%\filelist.txt" + +:end Index: src/ch/ch.vc140.vcxproj =================================================================== diff -u -N -r1cbea44490be75319be043e12953072020e7d5c0 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/ch/ch.vc140.vcxproj (.../ch.vc140.vcxproj) (revision 1cbea44490be75319be043e12953072020e7d5c0) +++ src/ch/ch.vc140.vcxproj (.../ch.vc140.vcxproj) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -43,49 +43,49 @@ Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Application - v140_xp + v120_xp Dynamic Unicode Index: src/chext/TLogger.h =================================================================== diff -u -N -r3d1de44762647618faf9b5b3a87f89b293899d8d -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/chext/TLogger.h (.../TLogger.h) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) +++ src/chext/TLogger.h (.../TLogger.h) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -35,7 +35,7 @@ // logging helpers namespace details { - constexpr severity_level HRESULT2Severity(HRESULT hResult) + inline severity_level HRESULT2Severity(HRESULT hResult) { return (SUCCEEDED(hResult)) ? debug : error; } Index: src/chext/chext.vc140.vcxproj =================================================================== diff -u -N -r3d1de44762647618faf9b5b3a87f89b293899d8d -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/chext/chext.vc140.vcxproj (.../chext.vc140.vcxproj) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) +++ src/chext/chext.vc140.vcxproj (.../chext.vc140.vcxproj) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -43,53 +43,53 @@ DynamicLibrary - v140_xp + v120_xp false false Unicode DynamicLibrary - v140_xp + v120_xp false false Unicode DynamicLibrary - v140_xp + v120_xp false Unicode DynamicLibrary - v140_xp + v120_xp false Unicode DynamicLibrary - v140_xp + v120_xp false false Unicode DynamicLibrary - v140_xp + v120_xp false false Unicode DynamicLibrary - v140_xp + v120_xp false Unicode DynamicLibrary - v140_xp + v120_xp false Unicode Index: src/libchcore/TCoreException.cpp =================================================================== diff -u -N -r0c48142d3db406c32c05d7afdf77da45b2459b34 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TCoreException.cpp (.../TCoreException.cpp) (revision 0c48142d3db406c32c05d7afdf77da45b2459b34) +++ src/libchcore/TCoreException.cpp (.../TCoreException.cpp) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -21,4 +21,13 @@ namespace chcore { + TCoreException::TCoreException(EGeneralErrors eErrorCode, const wchar_t* pszMsg, const wchar_t* pszFile, size_t stLineNumber, const wchar_t* pszFunction) : + TBaseException(eErrorCode, pszMsg, pszFile, stLineNumber, pszFunction) + { + } + + TCoreException::TCoreException(EGeneralErrors eErrorCode, const char* pszMsg, const wchar_t* pszFile, size_t stLineNumber, const wchar_t* pszFunction) : + TBaseException(eErrorCode, pszMsg, pszFile, stLineNumber, pszFunction) + { + } } Index: src/libchcore/TCoreException.h =================================================================== diff -u -N -r09d769045d1d5c45d8df16d209c754b872348c26 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TCoreException.h (.../TCoreException.h) (revision 09d769045d1d5c45d8df16d209c754b872348c26) +++ src/libchcore/TCoreException.h (.../TCoreException.h) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -32,11 +32,11 @@ namespace chcore { - class LIBCHCORE_API TCoreException : public TBaseException { public: - using TBaseException::TBaseException; + TCoreException(EGeneralErrors eErrorCode, const wchar_t* pszMsg, const wchar_t* pszFile, size_t stLineNumber, const wchar_t* pszFunction); + TCoreException(EGeneralErrors eErrorCode, const char* pszMsg, const wchar_t* pszFile, size_t stLineNumber, const wchar_t* pszFunction); }; } Index: src/libchcore/TFilesystemFeedbackWrapper.h =================================================================== diff -u -N -r89f857792bba8752de98ddd477949e45cef5ba5a -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TFilesystemFeedbackWrapper.h (.../TFilesystemFeedbackWrapper.h) (revision 89f857792bba8752de98ddd477949e45cef5ba5a) +++ src/libchcore/TFilesystemFeedbackWrapper.h (.../TFilesystemFeedbackWrapper.h) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -32,6 +32,7 @@ { public: TFilesystemFeedbackWrapper(const IFeedbackHandlerPtr& spFeedbackHandler, const IFilesystemPtr& spFilesystem, icpf::log_file& rLog, TWorkerThreadController& rThreadController); + TFilesystemFeedbackWrapper& operator=(const TFilesystemFeedbackWrapper&) = delete; TSubTaskBase::ESubOperationResult CreateDirectoryFB(const TSmartPath& pathDirectory); TSubTaskBase::ESubOperationResult CheckForFreeSpaceFB(const TSmartPath& pathFirstSrc, const TSmartPath& pathDestination, unsigned long long ullNeededSize); Index: src/libchcore/TFilesystemFileFeedbackWrapper.h =================================================================== diff -u -N -r89f857792bba8752de98ddd477949e45cef5ba5a -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TFilesystemFileFeedbackWrapper.h (.../TFilesystemFileFeedbackWrapper.h) (revision 89f857792bba8752de98ddd477949e45cef5ba5a) +++ src/libchcore/TFilesystemFileFeedbackWrapper.h (.../TFilesystemFileFeedbackWrapper.h) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -34,6 +34,7 @@ { public: TFilesystemFileFeedbackWrapper(const IFeedbackHandlerPtr& spFeedbackHandler, icpf::log_file& rLog, TWorkerThreadController& rThreadController); + TFilesystemFileFeedbackWrapper& operator=(const TFilesystemFileFeedbackWrapper&) = delete; TSubTaskBase::ESubOperationResult OpenSourceFileFB(const IFilesystemFilePtr& fileSrc); TSubTaskBase::ESubOperationResult OpenExistingDestinationFileFB(const IFilesystemFilePtr& fileDst); Index: src/libchcore/TLocalFilesystemFile.cpp =================================================================== diff -u -N -r41383599835bbab64d854eed179a7db21a59c6bf -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TLocalFilesystemFile.cpp (.../TLocalFilesystemFile.cpp) (revision 41383599835bbab64d854eed179a7db21a59c6bf) +++ src/libchcore/TLocalFilesystemFile.cpp (.../TLocalFilesystemFile.cpp) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -54,7 +54,7 @@ } } - constexpr DWORD TLocalFilesystemFile::GetFlagsAndAttributes(bool bNoBuffering) const + DWORD TLocalFilesystemFile::GetFlagsAndAttributes(bool bNoBuffering) const { return FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED | FILE_FLAG_SEQUENTIAL_SCAN | (bNoBuffering ? FILE_FLAG_NO_BUFFERING : 0); } Index: src/libchcore/TLocalFilesystemFile.h =================================================================== diff -u -N -r41383599835bbab64d854eed179a7db21a59c6bf -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/TLocalFilesystemFile.h (.../TLocalFilesystemFile.h) (revision 41383599835bbab64d854eed179a7db21a59c6bf) +++ src/libchcore/TLocalFilesystemFile.h (.../TLocalFilesystemFile.h) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -55,7 +55,7 @@ private: TLocalFilesystemFile(const TSmartPath& pathFile, bool bNoBuffering); - constexpr DWORD GetFlagsAndAttributes(bool bNoBuffering) const; + DWORD GetFlagsAndAttributes(bool bNoBuffering) const; void OpenExistingForWriting(bool bNoBuffering); Index: src/libchcore/libchcore.vc140.vcxproj =================================================================== diff -u -N -r4d1f8110906889d56552771fb58a6de86bc54a29 -rbfc7a8378a96c5b58def559b343918fca32f05a6 --- src/libchcore/libchcore.vc140.vcxproj (.../libchcore.vc140.vcxproj) (revision 4d1f8110906889d56552771fb58a6de86bc54a29) +++ src/libchcore/libchcore.vc140.vcxproj (.../libchcore.vc140.vcxproj) (revision bfc7a8378a96c5b58def559b343918fca32f05a6) @@ -43,47 +43,47 @@ DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode true DynamicLibrary - v140_xp + v120_xp Unicode DynamicLibrary - v140_xp + v120_xp Unicode DynamicLibrary Unicode true - v140_xp + v120_xp DynamicLibrary Unicode true - v140_xp + v120_xp DynamicLibrary Unicode - v140_xp + v120_xp DynamicLibrary Unicode - v140_xp + v120_xp