From eea893cb4cbb099223500a69d2b76bf67337379c Mon Sep 17 00:00:00 2001 From: Francis ANDRE Date: Tue, 16 Jul 2019 15:49:34 +0200 Subject: [PATCH] Fix GH ##2742 --- .gitignore | 1 + CHANGELOG | 10 +- DLLVersion.rc | 4 +- VERSION | 2 +- buildwin.cmd | 294 +++++++++++++++++++++++++++++++++----------------- buildwin.ps1 | 245 ++++++++++++++++++++++++++++------------- libversion | 2 +- 7 files changed, 376 insertions(+), 182 deletions(-) diff --git a/.gitignore b/.gitignore index ea6778034..33c193b74 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,4 @@ cmake-build/ *.bak stage/ releases/ +/.metadata/ diff --git a/CHANGELOG b/CHANGELOG index 3f03ffc9a..7ee3fc9e1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,10 +1,16 @@ This is the changelog file for the POCO C++ Libraries. +Release 1.9.3 (2019-07-16) +========================== + +- fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable, vswhere.exe, installed by MSVC starting from VS2017 + + Release 1.9.2 (2019-07-02) ========================== - fixed GH #2736: Error using CMake gui - latest version -- fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7 +- fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7 - fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration @@ -43,7 +49,7 @@ Release 1.9.1 (2019-06-24) - fixed GH #2655: MongoDB Binary element to string - bug - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file - fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes. -- fixed GH #2712: File_WIN32.cpp(168): error C2065: “_upath”:Undeclared identifier +- fixed GH #2712: File_WIN32.cpp(168): error C2065: “_upathâ€�:Undeclared identifier - fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method. diff --git a/DLLVersion.rc b/DLLVersion.rc index 511e3cd83..54096c168 100644 --- a/DLLVersion.rc +++ b/DLLVersion.rc @@ -4,8 +4,8 @@ #include "winres.h" -#define POCO_VERSION 1,9,2,0 -#define POCO_VERSION_STR "1.9.2" +#define POCO_VERSION 1,9,3,0 +#define POCO_VERSION_STR "1.9.3" VS_VERSION_INFO VERSIONINFO FILEVERSION POCO_VERSION diff --git a/VERSION b/VERSION index 8fdcf3869..77fee73a8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.9.2 +1.9.3 diff --git a/buildwin.cmd b/buildwin.cmd index 11059744d..ee416802e 100644 --- a/buildwin.cmd +++ b/buildwin.cmd @@ -1,13 +1,13 @@ @echo off -setlocal enabledelayedexpansion +setlocal enableextensions enabledelayedexpansion rem rem buildwin.cmd rem rem POCO C++ Libraries command-line build script -rem for MS Visual Studio 2008 to 2019 +rem for MS Visual Studio 2008 to 2013 rem -rem Copyright (c) 2006-2019 by Applied Informatics Software Engineering GmbH +rem Copyright (c) 2006-2017 by Applied Informatics Software Engineering GmbH rem and Contributors. rem rem Original version by Aleksandar Fabijanic. @@ -15,7 +15,7 @@ rem Modified by Guenter Obiltschnig. rem rem Usage: rem ------ -rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] +rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] [ENV] [VERBOSITY [LOGGER] ] rem VS_VERSION: 90|100|110|120|140|150|160 rem ACTION: build|rebuild|clean rem LINKMODE: static_mt|static_md|shared|all @@ -24,52 +24,96 @@ rem PLATFORM: Win32|x64|WinCE|WEC2013 rem SAMPLES: samples|nosamples rem TESTS: tests|notests rem TOOL: devenv|vcexpress|wdexpress|msbuild +rem ENV: env|noenv (active only with msbuild, defaulted to env) +rem VERBOSITY quiet|minimal|normal|detailed|diagnostic +rem LOGGER see msbuild /? rem rem VS_VERSION is required argument. Default is build all. -rem Change OPENSSL_DIR to match your setup -set OPENSSL_DIR=C:\OpenSSL -set OPENSSL_INCLUDE=%OPENSSL_DIR%\include -set OPENSSL_LIB=%OPENSSL_DIR%\lib;%OPENSSL_DIR%\lib\VC -set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE% -set LIB=%LIB%;%OPENSSL_LIB% - -rem Change MYSQL_DIR to match your setup -set MYSQL_DIR=C:\PROGRA~1\MySQL\MYSQLS~1.5 -set MYSQL_INCLUDE=%MYSQL_DIR%\include -set MYSQL_LIB=%MYSQL_DIR%\lib -set INCLUDE=%INCLUDE%;%MYSQL_INCLUDE% -set LIB=%LIB%;%MYSQL_LIB% - set POCO_BASE=%CD% set PATH=%POCO_BASE%\bin64;%POCO_BASE%\bin;%PATH% rem VS_VERSION {90 | 100 | 110 | 120 | 140 | 150 | 160} if "%1"=="" goto usage + +rem -version ^^[16.0^^,17.0^^) set VS_VERSION=vs%1 +if %VS_VERSION%==vs160 ( +rem should be set "VSWHERE='%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe -property installationPath -version ^[16.0^,17.0^)'" + set "VSWHERE='C:\PROGRA~2\MICROS~1\Installer\vswhere.exe -latest -property installationPath -version ^[16.0^,17.0^)'" +) else ( +if %VS_VERSION%==vs150 ( + set "VSWHERE='C:\PROGRA~2\MICROS~1\Installer\vswhere.exe -latest -property installationPath -version ^[15.0^,16.0^)'" +) +) +for /f " delims=" %%a in (%VSWHERE%) do @set "VSCOMNTOOLS=%%a" + +echo ============= %VSCOMNTOOLS% ============= + if %VS_VERSION%==vs160 ( set VS_VARSALL=..\..\VC\Auxiliary\Build\vcvarsall.bat + set "VS160COMNTOOLS=%VSCOMNTOOLS%\Common7\Tools\" ) else ( if %VS_VERSION%==vs150 ( set VS_VARSALL=..\..\VC\Auxiliary\Build\vcvarsall.bat + set "VS150COMNTOOLS=%VSCOMNTOOLS%\Common7\Tools\" ) else ( set VS_VARSALL=..\..\VC\vcvarsall.bat ) ) + +shift /1 +rem ACTION [build|rebuild|clean] +set ACTION=%1 +if "%ACTION%"=="" (set ACTION=build) +if not "%ACTION%"=="build" ( +if not "%ACTION%"=="rebuild" ( +if not "%ACTION%"=="clean" goto usage)) + +shift /1 +rem LINKMODE [static_mt|static_md|shared|all] +set LINK_MODE=%1 +if "%LINK_MODE%"=="" (set LINK_MODE=all) +if not "%LINK_MODE%"=="static_mt" ( +if not "%LINK_MODE%"=="static_md" ( +if not "%LINK_MODE%"=="shared" ( +if not "%LINK_MODE%"=="all" goto usage))) + +rem CONFIGURATION [release|debug|both] +set CONFIGURATION=%2 +if "%CONFIGURATION%"=="" (set CONFIGURATION=both) +if not "%CONFIGURATION%"=="release" ( +if not "%CONFIGURATION%"=="debug" ( +if not "%CONFIGURATION%"=="both" goto usage)) + rem PLATFORM [Win32|x64|WinCE|WEC2013] -set PLATFORM=%5 +set PLATFORM=%3 if "%PLATFORM%"=="" (set PLATFORM=Win32) if not "%PLATFORM%"=="Win32" ( if not "%PLATFORM%"=="x64" ( if not "%PLATFORM%"=="WinCE" ( if not "%PLATFORM%"=="WEC2013" goto usage))) +if "%PLATFORM%"=="Win32" (set PLATFORM_SUFFIX=) else ( +if "%PLATFORM%"=="x64" (set PLATFORM_SUFFIX=_x64) else ( +if "%PLATFORM%"=="WinCE" (set PLATFORM_SUFFIX=_CE) else ( +if "%PLATFORM%"=="WEC2013" (set PLATFORM_SUFFIX=_WEC2013)))) + + +rem SAMPLES [samples|nosamples] +set SAMPLES=%4 +if "%SAMPLES%"=="" (set SAMPLES=samples) + +rem TESTS [tests|notests] +set TESTS=%5 +if "%TESTS%"=="" (set TESTS=notests) + if not defined VCINSTALLDIR ( if %VS_VERSION%==vs90 ( if %PLATFORM%==x64 ( - call "%VS90COMNTOOLS%%VS_VARSALL%" x86_amd64 + call "%VS90COMNTOOLS%%VS_VARSALL%" x86_amd64 8.1 ) else ( - call "%VS90COMNTOOLS%%VS_VARSALL%" x86 + call "%VS90COMNTOOLS%%VS_VARSALL%" x86 8.1 ) ) else ( if %VS_VERSION%==vs100 ( @@ -109,9 +153,9 @@ if not defined VCINSTALLDIR ( ) else ( if %VS_VERSION%==vs160 ( if %PLATFORM%==x64 ( - call "%VS160COMNTOOLS%%VS_VARSALL%" x86_amd64 + call "%VS160COMNTOOLS%%VS_VARSALL%" x86_amd64 8.1 ) else ( - call "%VS160COMNTOOLS%%VS_VARSALL%" x86 + call "%VS160COMNTOOLS%%VS_VARSALL%" x86 8.1 ) ) ) @@ -126,7 +170,7 @@ if not defined VSINSTALLDIR ( echo Error: No Visual C++ environment found. echo Please run this script from a Visual Studio Command Prompt echo or run "%%VSnnCOMNTOOLS%%\vsvars32.bat" first. - goto :EOF + goto :buildfailed ) set VCPROJ_EXT=vcproj @@ -137,8 +181,24 @@ if %VS_VERSION%==vs140 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs150 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs160 (set VCPROJ_EXT=vcxproj) -if "%8"=="" goto use_devenv -set BUILD_TOOL=%8 + +rem ENV env|noenv +set USEENV=%7 +if "%USEENV%"=="" (set USEENV=env) +if not "%USEENV%"=="env" ( +if not "%USEENV%"=="noenv" goto usage) + +rem VERBOSITY quiet|minimal|normal|detailed +set VERBOSITY=%8 +if "%VERBOSITY%"=="" (set VERBOSITY=minimal) +if not "%VERBOSITY%"=="quiet" ( +if not "%VERBOSITY%"=="minimal" ( +if not "%VERBOSITY%"=="normal" ( +if not "%VERBOSITY%"=="detailed" ( +if not "%VERBOSITY%"=="diagnostic" goto usage)))) + +if "%6"=="" goto use_devenv +set BUILD_TOOL=%6 goto use_custom :use_devenv set BUILD_TOOL=devenv @@ -149,16 +209,36 @@ if "%VS_VERSION%"=="vs140" (set BUILD_TOOL=msbuild) if "%VS_VERSION%"=="vs150" (set BUILD_TOOL=msbuild) if "%VS_VERSION%"=="vs160" (set BUILD_TOOL=msbuild) :use_custom -if not "%BUILD_TOOL%"=="msbuild" (set USEENV=/useenv) if "%BUILD_TOOL%"=="msbuild" ( + if "%PLATFORM%"=="Win32" (set PLATFORMSW=/p:Platform=Win32) else ( + if "%PLATFORM%"=="x86" (set PLATFORMSW=/p:Platform=Win32) else ( + if "%PLATFORM%"=="x64" (set PLATFORMSW=/p:Platform=x64))) + set ACTIONSW=/t: set CONFIGSW=/p:Configuration= set EXTRASW=/m - set USEENV=/p:UseEnv=true + if "%USEENV%"=="env" set USEENVP=/p:UseEnv=true + if "%USEENV%"=="noenv" set USEENVP=/p:UseEnv=false + + set BUILD_TOOL_FLAGS=/clp:NoSummary + set BUILD_TOOL_FLAGS=!BUILD_TOOL_FLAGS! /nologo /v:%VERBOSITY% ) if not "%BUILD_TOOL%"=="msbuild" ( + set USEENVP=/useenv set ACTIONSW=/ ) + + +rem LOGGER see msbuild /? +set LOGGER=%9 +if not "%LOGGER%"=="" ( + if "%BUILD_TOOL%"=="msbuild" ( + if not %LOGGER%X==X ( + set BUILD_TOOL_FLAGS=!BUILD_TOOL_FLAGS! /logger:%LOGGER% + ) + ) +) + if "%VS_VERSION%"=="vs100" (goto msbuildok) if "%VS_VERSION%"=="vs110" (goto msbuildok) if "%VS_VERSION%"=="vs120" (goto msbuildok) @@ -171,32 +251,6 @@ if "%BUILD_TOOL%"=="msbuild" ( ) :msbuildok -rem ACTION [build|rebuild|clean] -set ACTION=%2 -if "%ACTION%"=="" (set ACTION=build) -if not "%ACTION%"=="build" ( -if not "%ACTION%"=="rebuild" ( -if not "%ACTION%"=="clean" goto usage)) - -rem LINKMODE [static_mt|static_md|shared|all] -set LINK_MODE=%3 -if "%LINK_MODE%"=="" (set LINK_MODE=all) -if not "%LINK_MODE%"=="static_mt" ( -if not "%LINK_MODE%"=="static_md" ( -if not "%LINK_MODE%"=="shared" ( -if not "%LINK_MODE%"=="all" goto usage))) - -rem CONFIGURATION [release|debug|both] -set CONFIGURATION=%4 -if "%CONFIGURATION%"=="" (set CONFIGURATION=both) -if not "%CONFIGURATION%"=="release" ( -if not "%CONFIGURATION%"=="debug" ( -if not "%CONFIGURATION%"=="both" goto usage)) - -if "%PLATFORM%"=="Win32" (set PLATFORM_SUFFIX=) else ( -if "%PLATFORM%"=="x64" (set PLATFORM_SUFFIX=_x64) else ( -if "%PLATFORM%"=="WinCE" (set PLATFORM_SUFFIX=_CE) else ( -if "%PLATFORM%"=="WEC2013" (set PLATFORM_SUFFIX=_WEC2013)))) if "%PLATFORM%"=="WEC2013" ( if "%WEC2013_PLATFORM%"=="" ( @@ -212,15 +266,6 @@ if %VS_VERSION%==vs150 (set EXTRASW=/m /p:VisualStudioVersion=15.0) if %VS_VERSION%==vs160 (set EXTRASW=/m /p:VisualStudioVersion=16.0) ) -rem SAMPLES [samples|nosamples] -set SAMPLES=%6 -if "%SAMPLES%"=="" (set SAMPLES=samples) - -rem TESTS [tests|notests] -set TESTS=%7 -if "%TESTS%"=="" (set TESTS=notests) - - set DEBUG_SHARED=0 set RELEASE_SHARED=0 set DEBUG_STATIC_MT=0 @@ -315,6 +360,8 @@ echo #### echo ######################################################################## echo. echo. +echo buildwin %VS_VERSION% %ACTION% %LINK_MODE% %CONFIGURATION% %PLATFORM% %SAMPLES% %TESTS% !BUILD_TOOL! %USEENV% %VERBOSITY% +echo. echo The following configurations will be built: if %DEBUG_SHARED%==1 (echo debug_shared) @@ -331,6 +378,8 @@ for /f %%G in ('findstr /R "." components') do ( for /f "tokens=1,2,3,4 delims=/" %%Q in ("%%G") do ( set PROJECT_FILE=%%Q%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT% set TEST_PROJECT_FILE=testsuite/TestSuite%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT% + set TEST_APP_PROJECT_FILE=testsuite/TestApp%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT% + set TEST_LIB_PROJECT_FILE=testsuite/TestLibrary%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT% if exist !PROJECT_FILE! ( call :build %%G if ERRORLEVEL 1 goto buildfailed @@ -371,74 +420,115 @@ echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ echo. if %DEBUG_SHARED%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !TEST_APP_PROJECT_FILE! + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !TEST_LIB_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) if %RELEASE_SHARED%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !PROJECT_FILE! + + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !TEST_APP_PROJECT_FILE! + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !TEST_LIB_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) if %DEBUG_STATIC_MT%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !TEST_APP_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) if %RELEASE_STATIC_MT%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !TEST_APP_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) if %DEBUG_STATIC_MD%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !TEST_APP_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) if %RELEASE_STATIC_MD%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !PROJECT_FILE! + echo !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + echo. && echo. if %TESTS%==tests ( if exist !TEST_PROJECT_FILE! ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !TEST_PROJECT_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !TEST_PROJECT_FILE! if ERRORLEVEL 1 exit /b 1 - echo. && echo. && echo. + if %1==Foundation ( + echo. + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !TEST_APP_PROJECT_FILE! + if ERRORLEVEL 1 exit /b 1 + ) + echo. && echo. ) ) ) @@ -476,34 +566,34 @@ for /f %%G in ('findstr /R "." components') do ( set SOLUTION_FILE=samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln if %DEBUG_SHARED%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) if %RELEASE_SHARED%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) if %DEBUG_STATIC_MT%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) if %RELEASE_STATIC_MT%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) if %DEBUG_STATIC_MD%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) if %RELEASE_STATIC_MD%==1 ( - !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !SOLUTION_FILE! + !BUILD_TOOL! !BUILD_TOOL_FLAGS! !USEENVP! %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !SOLUTION_FILE! if ERRORLEVEL 1 goto buildfailed - echo. && echo. && echo. + echo. && echo. ) cd "%POCO_BASE%" @@ -546,8 +636,8 @@ exit /b 1 :usage echo Usage: echo ------ -echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] -echo VS_VERSION: "90|100|110|120|140|150|160" +echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] [ENV] [VERBOSITY] +echo VS_VERSION: "90|100|110|120|140|150" echo ACTION: "build|rebuild|clean" echo LINKMODE: "static_mt|static_md|shared|all" echo CONFIGURATION: "release|debug|both" @@ -555,6 +645,8 @@ echo PLATFORM: "Win32|x64|WinCE|WEC2013" echo SAMPLES: "samples|nosamples" echo TESTS: "tests|notests" echo TOOL: "devenv|vcexpress|wdexpress|msbuild" +echo ENV: "env|noenv" (active only with msbuild, defaulted to env) +echo VERBOSITY: "quiet|minimal|normal|detailed|diagnostic" only for msbuild echo. echo Default is build all. endlocal diff --git a/buildwin.ps1 b/buildwin.ps1 index 8133fe5f0..d75039bf9 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -1,10 +1,10 @@ # # POCO build script -# +# # Usage: # ------ # buildwin.ps1 [-poco_base dir] -# [-vs_version 160 | 150 | 140 | 120 | 110 | 100 | 90] +# [-vs 140 | 150 | 160] # [-action build | rebuild | clean] # [-linkmode shared | static_mt | static_md | all] # [-config release | debug | both] @@ -13,6 +13,8 @@ # [-tests] # [-omit "Lib1X;LibY;LibZ;..."] # [-tool msbuild | devenv] +# [-useenv env | noenv] +# [-verbosity m[inimal] | q[uiet] | n[ormal] | d[etailed] | diag[nostic]] # [-openssl_base dir] # [-mysql_base dir] @@ -23,8 +25,8 @@ Param [string] $poco_base, [Parameter()] - [ValidateSet(90, 100, 110, 120, 140, 150, 160)] - [int] $vs_version, + [ValidateSet(140, 150, 160)] + [int] $vs = 140, [Parameter()] [ValidateSet('build', 'rebuild', 'clean')] @@ -50,6 +52,14 @@ Param [ValidateSet('msbuild', 'devenv')] [string] $tool = 'msbuild', + [Parameter()] + [ValidateSet('env', 'noenv')] + [string] $useenv = 'env', + + [Parameter()] + [ValidateSet('quiet', 'm[inimal]', 'n[ormal]', 'd[etailed]', 'diag[nostic]')] + [string] $verbosity = 'minimal', + [Parameter()] [string] $openssl_base, @@ -59,16 +69,52 @@ Param [switch] $help ) +function Add-VSCOMNTOOLS([int] $vsver) +{ + if ($vsver -ge 150) + { + $vssetup= $([Environment]::GetFolderPath("MyDocuments")) + $vssetup= Join-Path $vssetup "WindowsPowerShell" + $vssetup= Join-Path $vssetup "Modules" + $vssetup= Join-Path $vssetup "VSSetup" + if (-not (Test-Path $vssetup)) + { + Install-Module VSSetup -Scope CurrentUser -Force + } + if ($vsver -eq 150) + { + $range='[15.0,16.0)' + } + if ($vsver -eq 160) + { + $range='[16.0,17.0)' + } + + $installationPath = Get-VSSetupInstance | Select-VSSetupInstance -Version $range -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | select InstallationPath + $vscomntools = $installationPath.psobject.properties.Value; + if ($vsver -eq 150) + { + set-item -force -path "ENV:VS150COMNTOOLS" -value "$vscomntools\Common7\Tools\" + Write-Host "`nVS150COMNTOOLS=$env:VS150COMNTOOLS" -ForegroundColor Yellow + } + if ($vsver -eq 160) + { + set-item -force -path "ENV:VS160COMNTOOLS" -value "$vscomntools\Common7\Tools\" + Write-Host "`nVS160COMNTOOLS=$env:VS160COMNTOOLS" -ForegroundColor Yellow + } + + } +} function Add-Env-Var([string] $lib, [string] $var) { - if ((${Env:$var} -eq $null) -or (-not ${Env:$var}.Contains(${Env:$lib_$var}))) + if ((${Env:$var} -eq $null) -or (-not ${Env:$var}.Contains(${Env:$lib_$var"}))) { $libvar = "$lib" + "_" + "$var" - $envvar = [Environment]::GetEnvironmentVariable($libvar, "Process") + $envvar = [Environment]::GetEnvironmentVariable($var, "Process") + $envvar = $envvar + ';' + [Environment]::GetEnvironmentVariable($libvar, "Process") [Environment]::SetEnvironmentVariable($var, $envvar, "Process") } - } @@ -76,30 +122,20 @@ function Set-Environment { if ($poco_base -eq '') { $script:poco_base = Get-Location } - if ($vs_version -eq 0) + switch ( $vs ) { - if ($Env:VS160COMNTOOLS -ne '') { $script:vs_version = 160 } - elseif ($Env:VS150COMNTOOLS -ne '') { $script:vs_version = 150 } - elseif ($Env:VS140COMNTOOLS -ne '') { $script:vs_version = 140 } - elseif ($Env:VS120COMNTOOLS -ne '') { $script:vs_version = 120 } - elseif ($Env:VS110COMNTOOLS -ne '') { $script:vs_version = 110 } - elseif ($Env:VS100COMNTOOLS -ne '') { $script:vs_version = 100 } - elseif ($Env:VS90COMNTOOLS -ne '') { $script:vs_version = 90 } - else - { - Write-Host 'Visual Studio not found, exiting.' - Exit - } + 140 { } + default { Add-VSCOMNTOOLS $vs } } - if (-Not $Env:PATH.Contains("$Env:POCO_BASE\bin64;$Env:POCO_BASE\bin;")) + if (-Not $Env:PATH.Contains("$Env:POCO_BASE\bin64;$Env:POCO_BASE\bin;")) { $Env:PATH = "$Env:POCO_BASE\bin64;$Env:POCO_BASE\bin;$Env:PATH" } if ($openssl_base -eq '') { $script:openssl_base = '$poco_base\openssl' } - + $Env:OPENSSL_DIR = "$openssl_base" $Env:OPENSSL_INCLUDE = "$Env:OPENSSL_DIR\include" $Env:OPENSSL_LIB = "$Env:OPENSSL_DIR\lib;$Env:OPENSSL_DIR\lib\VC" @@ -115,27 +151,29 @@ function Set-Environment Add-Env-Var "MYSQL" "LIB" } - $vsct = "VS$($vs_version)COMNTOOLS" + $vsct = "VS$($vs)COMNTOOLS" + $vsdir = '' $vsdir = (Get-Item Env:$vsct).Value $Command = '' $CommandArg = '' if ($platform -eq 'x64') { $CommandArg = "amd64" } else { $CommandArg = "x86" } - if ($vs_version -ge 160) + if ($vs -eq 150) { - $Command = "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" - $script:msbuild_exe = "$($vsdir)\..\..\MSBuild\Current\Bin\MSBuild.exe" - } - elseif ($vs_version -ge 150) + $Command = Resolve-Path "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" + $script:msbuild_exe = Resolve-Path "$($vsdir)\..\..\MSBuild\15.0\Bin\MSBuild.exe" + } else { + if ($vs -eq 160) { - $Command = "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" - $script:msbuild_exe = "$($vsdir)\..\..\MSBuild\15.0\Bin\MSBuild.exe" + $Command = Resolve-Path "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" + $script:msbuild_exe = Resolve-Path "$($vsdir)\..\..\MSBuild\Current\Bin\MSBuild.exe" } else { - $Command = "$($vsdir)\..\..\VC\vcvarsall.bat" + $Command = Resolve-Path "$($vsdir)\..\..\VC\vcvarsall.bat" $script:msbuild_exe = "MSBuild.exe" - } + }} + $tempFile = [IO.Path]::GetTempFileName() cmd /c " `"$Command`" $CommandArg && set > `"$tempFile`" " Get-Content $tempFile | Foreach-Object { @@ -154,8 +192,8 @@ function Process-Input { Write-Host 'Usage:' Write-Host '------' - Write-Host 'buildwin.ps1 [-poco_base dir]' - Write-Host ' [-vs_version 160 | 150 | 140 | 120 | 110 | 100 | 90]' + Write-Host 'buildwin.ps1 [-poco_base ]' + Write-Host ' [-vs 140 | 150 | 160]' Write-Host ' [-action build | rebuild | clean]' Write-Host ' [-linkmode shared | static_mt | static_md | all]' Write-Host ' [-config release | debug | both]' @@ -164,8 +202,10 @@ function Process-Input Write-Host ' [-tests]' Write-Host ' [-omit "Lib1X;LibY;LibZ;..."]' Write-Host ' [-tool msbuild | devenv]' - Write-Host ' [-openssl_base dir]' - Write-Host ' [-mysql_base dir]' + Write-Host ' [-useenv env | noenv]' + Write-Host ' [-verbosity minimal | quiet | normal | detailed | diagnostic' + Write-Host ' [-openssl_base ]' + Write-Host ' [-mysql_base ]' Exit } @@ -176,7 +216,7 @@ function Process-Input Write-Host "Build configuration:" Write-Host "--------------------" Write-Host "Poco Base: $poco_base" - Write-Host "Version: $vs_version" + Write-Host "Version: $vs" Write-Host "Action: $action" Write-Host "Link Mode: $linkmode" Write-Host "Configuration: $config" @@ -194,15 +234,15 @@ function Process-Input { Write-Host "OpenSSL: $openssl_base" } - + if ($mysql_base -ne '') { Write-Host "MySQL: $mysql_base" } # NB: this won't work in PowerShell ISE - Write-Host "Press Ctrl-C to exit or any other key to continue ..." - $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") + #Write-Host "Press Ctrl-C to exit or any other key to continue ..." + #$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") } } @@ -214,18 +254,24 @@ function Exec-MSBuild([string] $vsProject, [string] $projectConfig) return } - $cmd = "&`"$script:msbuild_exe`" $vsProject /t:$action /p:Configuration=$projectConfig /p:BuildProjectReferences=false /p:Platform=$platform /p:useenv=true" + $cmd = "&`"$script:msbuild_exe`" $vsProject /nologo /m /t:$action /p:Configuration=$projectConfig /p:BuildProjectReferences=false /p:Platform=$platform /p:useenv=$useenv /v:$verbosity" Write-Host $cmd Invoke-Expression $cmd if ($LastExitCode -ne 0) { Exit $LastExitCode } } -function Build-MSBuild([string] $vsProject) +function Build-MSBuild([string] $vsProject, [switch] $skipStatic) { + if ($linkmode -contains "static" -and $skipStatic) { Return } + if ($linkmode -eq 'all') { - $linkModeArr = 'shared', 'static_mt', 'static_md' + $linkModeArr = @('shared') + if (-not $skipStatic) + { + $linkModeArr += 'static_mt', 'static_md' + } foreach ($mode in $linkModeArr) { @@ -269,11 +315,17 @@ function Exec-Devenv([string] $projectConfig, [string] $vsProject) } -function Build-Devenv([string] $vsProject) +function Build-Devenv([string] $vsProject, [switch] $skipStatic) { + if ($linkmode -contains "static" -and $skipStatic) { Return } + if ($linkmode -eq 'all') { - $linkModeArr = 'shared', 'static_mt', 'static_md' + $linkModeArr = @('shared') + if (-not $skipStatic) + { + $linkModeArr += 'static_mt', 'static_md' + } foreach ($mode in $linkModeArr) { @@ -311,7 +363,7 @@ function Build-Devenv([string] $vsProject) function Build-samples { - process { + process { $sampleName = $_.BaseName.split("_")[0] $sampleProjName = "$($poco_base)\$($componentDir)\samples\$($sampleName)\$($_)" if ($tool -eq 'devenv') { Build-Devenv $sampleProjName } @@ -321,16 +373,27 @@ function Build-samples } -function Build +function Build-Exec([string] $tool, [string] $vsProject, [switch] $skipStatic) { - Process-Input + if (!(Test-Path -Path $vsProject)) # not found + { + Write-Host "+------------------------------------------------------------------" + Write-Host "| VS project $vsProject not found, skipping." + Write-Host "+------------------------------------------------------------------" + Return + } + if ($tool -eq 'devenv') { Build-Devenv $vsProject -skipStatic:$skipStatic } + elseif ($tool -eq 'msbuild') { Build-MSBuild $vsProject -skipStatic:$skipStatic } + else + { + Write-Host "Build tool $tool not supported. Exiting." + Exit -1 + } +} - if ($vs_version -lt 100) { $extension = 'vcproj' } - else { $extension = 'vcxproj' } - $platformName = '' - if ($platform -eq 'x64') { $platformName = '_x64' } - elseif ($platform -eq 'WinCE') { $platformName = '_CE' } +function Build-Components([string] $extension, [string] $platformName, [string] $type) +{ Get-Content "$poco_base\components" | Foreach-Object { @@ -338,17 +401,17 @@ function Build $componentDir = $_.Replace("/", "\") $componentArr = $_.split('/') $componentName = $componentArr[$componentArr.Length - 1] - $suffix = "_vs$vs_version" - + $suffix = "_vs$vs" + $omitArray = @() $omit.Split(',;') | ForEach { - $omitArray += "$_" + $omitArray += $_.Trim() } if ($omitArray -NotContains $component) { $vsProject = "$poco_base\$componentDir\$componentName$($platformName)$($suffix).$($extension)" - + if (!(Test-Path -Path $vsProject)) # when VS project name is not same as directory name { $vsProject = "$poco_base\$componentDir$($platformName)$($suffix).$($extension)" @@ -360,37 +423,52 @@ function Build Return # since Foreach-Object is a function, this is actually loop "continue" } } - + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - if ($tool -eq 'devenv') { Build-Devenv $vsProject } - elseif ($tool -eq 'msbuild') { Build-MSBuild $vsProject } - elseif ($tool -ne '') { Write-Host "Build tool not supported: $tool" } - else + if ($type -eq "lib") { - Write-Host "Build tool not specified. Exiting." - Exit - } - - if ($tests) + Build-Exec $tool $vsProject + } + ElseIf ($tests -and ($type -eq "test")) { $vsTestProject = "$poco_base\$componentDir\testsuite\TestSuite$($platformName)$($suffix).$($extension)" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Build-Exec $tool $vsTestProject - if ($tool -eq 'devenv') { Build-Devenv $vsTestProject } - elseif ($tool -eq 'msbuild') { Build-MSBuild $vsTestProject } - else{ Write-Host "Tool not supported: $tool" } + if ($component -eq "Foundation") # special case for Foundation, which needs test app and dll + { + $vsTestProject = "$poco_base\$componentDir\testsuite\TestApp$($platformName)$($suffix).$($extension)" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Building $vsTestProject" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Build-Exec $tool $vsTestProject + + $vsTestProject = "$poco_base\$componentDir\testsuite\TestLibrary$($platformName)$($suffix).$($extension)" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Building $vsTestProject" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Build-Exec $tool $vsTestProject -skipStatic + } } - - if ($samples) + ElseIf ($samples -and ($type -eq "sample")) { - Get-Childitem "$poco_base\$($componentDir)" -Recurse |` - Where {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$platformName$($suffix)" } ` - | Build-samples "$_" + if ($platform -eq 'x64') + { + Get-Childitem "$poco_base\$($componentDir)" -Recurse |` + Where {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$platformName$($suffix)" } ` + | Build-samples "$_" + } + else + { + Get-Childitem "$poco_base\$($componentDir)" -Recurse |` + Where {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" -And $_.BaseName -NotLike "*_x64_*" } ` + | Build-samples "$_" + } } } else @@ -403,4 +481,21 @@ function Build } +function Build +{ + Process-Input + + if ($vs -lt 100) { $extension = 'vcproj' } + else { $extension = 'vcxproj' } + + $platformName = '' + if ($platform -eq 'x64') { $platformName = '_x64' } + elseif ($platform -eq 'WinCE') { $platformName = '_CE' } + + Build-Components $extension $platformName "lib" + Build-Components $extension $platformName "test" + Build-Components $extension $platformName "sample" +} + + Build diff --git a/libversion b/libversion index b2412e34d..4e9e28848 100644 --- a/libversion +++ b/libversion @@ -1 +1 @@ -62 \ No newline at end of file +63 \ No newline at end of file