build_all/windows/build_client.cmd (106 lines of code) (raw):

@REM Copyright (c) Microsoft. All rights reserved. @REM Licensed under the MIT license. See LICENSE file in the project root for full license information. @setlocal EnableExtensions EnableDelayedExpansion @echo off set current-path=%~dp0 rem // remove trailing slash set current-path=%current-path:~0,-1% set build-root=%current-path%\..\.. rem // resolve to fully qualified path for %%i in ("%build-root%") do set build-root=%%~fi rem ----------------------------------------------------------------------------- rem -- check prerequisites rem ----------------------------------------------------------------------------- rem ----------------------------------------------------------------------------- rem -- parse script arguments rem ----------------------------------------------------------------------------- rem // default build options set build-clean=0 set build-config= set build-platform=Win32 set CMAKE_no_logging=OFF set CMAKE_run_unittests=OFF set prov_auth=OFF set prov_use_tpm_simulator=OFF set use_edge_modules=OFF :args-loop if "%1" equ "" goto args-done if "%1" equ "--config" goto arg-build-config if "%1" equ "--platform" goto arg-build-platform if "%1" equ "--no-logging" goto arg-no-logging if "%1" equ "--run-unittests" goto arg-run-unittests if "%1" equ "--provisioning" goto arg-provisioning if "%1" equ "--use-tpm-simulator" goto arg-tpm-simulator if "%1" equ "--use_edge_modules" goto arg-edge-modules call :usage && exit /b 1 :arg-build-config shift if "%1" equ "" call :usage && exit /b 1 set build-config=%1 goto args-continue :arg-build-platform shift if "%1" equ "" call :usage && exit /b 1 set build-platform=%1 goto args-continue :arg-no-logging set CMAKE_no_logging=ON goto args-continue :arg-run-unittests set CMAKE_run_unittests=ON goto args-continue :arg-provisioning set prov_auth=ON goto args-continue :arg-tpm-simulator set prov_use_tpm_simulator=ON goto args-continue :arg-edge-modules set use_edge_modules=ON goto args-continue :args-continue shift goto args-loop :args-done set cmake-output=cmake_%build-platform% rem ----------------------------------------------------------------------------- rem -- build with CMAKE rem ----------------------------------------------------------------------------- echo CMAKE Output Path: %USERPROFILE%\%cmake-output% rmdir /s/q %USERPROFILE%\%cmake-output% rem no error checking mkdir %USERPROFILE%\%cmake-output% rem no error checking pushd %USERPROFILE%\%cmake-output% if %build-platform% == Win32 ( echo ***Running CMAKE for Win32*** cmake %build-root% -G "Visual Studio 15 2017" -A Win32 -Drun_unittests:BOOL=%CMAKE_run_unittests% -Dno_logging:BOOL=%CMAKE_no_logging% -Duse_prov_client:BOOL=%prov_auth% -Duse_tpm_simulator:BOOL=%prov_use_tpm_simulator% -Duse_edge_modules=%use_edge_modules% if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) else ( echo ***Running CMAKE for Win64*** cmake %build-root% -G "Visual Studio 15 2017" -A x64 -Drun_unittests:BOOL=%CMAKE_run_unittests% -Dno_logging:BOOL=%CMAKE_no_logging% -Duse_prov_client:BOOL=%prov_auth% -Duse_tpm_simulator:BOOL=%prov_use_tpm_simulator% -Duse_edge_modules=%use_edge_modules% if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) if not defined build-config ( echo ***Building both configurations*** msbuild /m azure_iot_sdks.sln /p:Configuration=Release if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! msbuild /m azure_iot_sdks.sln /p:Configuration=Debug if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) else ( echo ***Building %build-config% only*** msbuild /m azure_iot_sdks.sln /p:Configuration=%build-config% if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) popd goto :eof :usage echo build_client.cmd [options] echo options: echo --config ^<value^> [Debug] build configuration (e.g. Debug, Release) echo --platform ^<value^> [Win32] build platform (e.g. Win32, x64, ...) echo --no-logging Disable logging echo --run-unittests Run unittests echo --provisioning Use Provisiong service echo --use-tpm-simulator Build TPM simulator goto :eof