X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=run.bat;h=f4f3b84812820d3569232cf5608740822e101839;hb=4d9c14696dded8996a281143dfccd312e5efcda9;hp=717429f7f899682583bac309e7b01eee21995b4e;hpb=4ed8d73b591a245d828e97f79a47a2e572475bd3;p=platform%2Fupstream%2Fiotivity.git diff --git a/run.bat b/run.bat index 717429f..f4f3b84 100644 --- a/run.bat +++ b/run.bat @@ -7,115 +7,232 @@ if [%1]==[] goto USAGE set IOTIVITY_DIR=%~dp0 set HOME=%USERPROFILE% -IF "%1" == "msys" ( +IF /I "%1" == "msys" ( set BUILD_MSYS="YES" SHIFT ) ELSE ( set BUILD_MSYS= ) -set CURRENT_ARG=%1 -set SECOND_ARG=%2 -set DEBUG= +REM *** Default BUILD OPTIONS *** +set TARGET_OS=windows -if "!SECOND_ARG!"=="debug" ( - set DEBUG="%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\cdb.exe" -2 -c "g" +if "%JENKINS_HOME%" == "" ( + set AUTOMATIC_UPDATE=0 +) else ( + set AUTOMATIC_UPDATE=1 ) -IF "%CURRENT_ARG%" == "build" IF "%BUILD_MSYS%" == "" ( - IF NOT "%VS140COMNTOOLS%" == "" ( - CALL "%VS140COMNTOOLS%"vsvars32.bat - ) ELSE ( - IF NOT "%VS120COMNTOOLS%" == "" ( - CALL "%VS120COMNTOOLS%"vsvars32.bat - ) - ) +if "%TARGET_ARCH%" == "" ( + set TARGET_ARCH=amd64 +) + +if "%TEST%" == "" ( + set TEST=1 +) + +if "%LOGGING%" == "" ( + set LOGGING=0 +) + +if "%RELEASE%" == "" ( + set RELEASE=0 +) + +if "%WITH_TCP%" == "" ( + set WITH_TCP=1 +) + +if "%SECURED%" == "" ( + set SECURED=1 +) + +if "%MULTIPLE_OWNER%" == "" ( + set MULTIPLE_OWNER=1 +) + +if "%UWP_APP%" == "" ( + REM Set it to build Win32 app by default + set UWP_APP=0 +) - IF NOT "!VSINSTALLDIR!" == "" ( - CALL "!VSINSTALLDIR!VC\vcvarsall.bat" amd64 - ) ELSE ( - @ECHO WARNING: Could not find vsvarsall.bat. - @ECHO WARNING: VISUAL STUDIO 2013/2015 DOES NOT APPEAR TO BE INSTALLED ON THIS MACHINE - GOTO :EOF +set THREAD_COUNT=%NUMBER_OF_PROCESSORS% + +set ROUTING=EP +set WITH_UPSTREAM_LIBCOAP=1 +set BINDIR=debug +set RD_MODE=CLIENT,SERVER + +set RUN_ARG=%1 +SHIFT + +set DEBUG= + +:processArgs +IF NOT "%1"=="" ( + IF /I "%1"=="-arch" ( + SET TARGET_ARCH=%2 + SHIFT + ) + IF /I "%1"=="-threads" ( + SET THREAD_COUNT=%2 + SHIFT + ) + IF /I "%1"=="-noTest" ( + SET TEST=0 + ) + IF /I "%1"=="-logging" ( + SET LOGGING=1 + ) + IF /I "%1"=="-debugger" ( + set DEBUG="%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\cdb.exe" -2 -c "g" ) + IF /I "%1"=="-release" ( + SET RELEASE=1 + ) + IF /I "%1"=="-noTCP" ( + SET WITH_TCP=0 + ) + IF /I "%1"=="-noSecurity" ( + set SECURED=0 + ) + IF /I "%1"=="-noMOT" ( + set MULTIPLE_OWNER=0 + ) + IF /I "%1"=="-automaticUpdate" ( + set AUTOMATIC_UPDATE=1 + ) + IF /I "%1"=="-uwp" ( + set UWP_APP=1 + ) + + SHIFT + GOTO :processArgs +) + +IF %RELEASE% == 1 ( + set BINDIR=release +) + +set BUILD_VARIANT=win32 +if "%UWP_APP%" == "1" ( + set BUILD_VARIANT=uwp ) REM We need to append the "PATH" so the octbstack.dll can be found by executables IF "%BUILD_MSYS%" == "" ( - set BUILD_DIR=out\windows\amd64\debug + set BUILD_DIR=out\windows\%BUILD_VARIANT%\%TARGET_ARCH%\%BINDIR% set PATH=!PATH!;!IOTIVITY_DIR!!BUILD_DIR!; ) ELSE ( - set BUILD_DIR=out\msys_nt\x86_64\debug + set BUILD_DIR=out\msys_nt\x86_64\%BINDIR% set PATH=!PATH!;!BUILD_DIR!;C:\msys64\mingw64\bin ) -REM *** BUILD OPTIONS *** -set TARGET_OS=windows -set TARGET_ARCH=amd64 -set SECURED=1 -set TEST=1 -set LOGGING=OFF -set WITH_RD=1 -set ROUTING=EP +set BUILD_OPTIONS= TARGET_OS=%TARGET_OS% TARGET_ARCH=%TARGET_ARCH% UWP_APP=%UWP_APP% RELEASE=%RELEASE% WITH_RA=0 TARGET_TRANSPORT=IP SECURED=%SECURED% WITH_TCP=%WITH_TCP% BUILD_SAMPLE=ON LOGGING=%LOGGING% RD_MODE=%RD_MODE% ROUTING=%ROUTING% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP% MULTIPLE_OWNER=%MULTIPLE_OWNER% AUTOMATIC_UPDATE=%AUTOMATIC_UPDATE% -set BUILD_OPTIONS= TARGET_OS=%TARGET_OS% TARGET_ARCH=%TARGET_ARCH% RELEASE=0 WITH_RA=0 TARGET_TRANSPORT=IP SECURED=%SECURED% WITH_TCP=0 BUILD_SAMPLE=ON LOGGING=%LOGGING% TEST=%TEST% WITH_RD=%WITH_RD% ROUTING=%ROUTING% +REM Use MSVC_VERSION=12.0 for VS2013, or MSVC_VERSION=14.0 for VS2015. +REM If MSVC_VERSION has not been defined here, SCons chooses automatically a VS version. +IF NOT "%MSVC_VERSION%" == "" ( + set BUILD_OPTIONS=%BUILD_OPTIONS% MSVC_VERSION=%MSVC_VERSION% +) REM *** BUILD OPTIONS *** -if "!CURRENT_ARG!"=="server" ( +if "!RUN_ARG!"=="server" ( cd %BUILD_DIR%\resource\examples %DEBUG% simpleserver.exe -) else if "!CURRENT_ARG!"=="client" ( +) else if "!RUN_ARG!"=="client" ( cd %BUILD_DIR%\resource\examples %DEBUG% simpleclient.exe -) else if "!CURRENT_ARG!"=="mediaclient" ( +) else if "!RUN_ARG!"=="serverhq" ( + cd %BUILD_DIR%\resource\examples + %DEBUG% simpleserverHQ.exe +) else if "!RUN_ARG!"=="clienthq" ( + cd %BUILD_DIR%\resource\examples + %DEBUG% simpleclientHQ.exe +) else if "!RUN_ARG!"=="mediaclient" ( cd %BUILD_DIR%\resource\examples %DEBUG% mediaclient.exe -) else if "!CURRENT_ARG!"=="mediaserver" ( +) else if "!RUN_ARG!"=="mediaserver" ( cd %BUILD_DIR%\resource\examples %DEBUG% mediaserver.exe -) else if "!CURRENT_ARG!"=="winuiclient" ( +) else if "!RUN_ARG!"=="winuiclient" ( cd %BUILD_DIR%\resource\examples %DEBUG% winuiclient.exe -) else if "!CURRENT_ARG!"=="occlient" ( +) else if "!RUN_ARG!"=="occlient" ( cd %BUILD_DIR%\resource\csdk\stack\samples\linux\SimpleClientServer %DEBUG% occlientbasicops.exe -u 0 -t 3 -c 1 -) else if "!CURRENT_ARG!"=="ocserver" ( +) else if "!RUN_ARG!"=="ocserver" ( cd %BUILD_DIR%\resource\csdk\stack\samples\linux\SimpleClientServer %DEBUG% ocserverbasicops.exe -) else if "!CURRENT_ARG!"=="provclient" ( +) else if "!RUN_ARG!"=="provclient" ( cd %BUILD_DIR%\resource\csdk\security\provisioning\sample %DEBUG% provisioningclient.exe -) else if "!CURRENT_ARG!"=="justworks" ( +) else if "!RUN_ARG!"=="justworks" ( cd %BUILD_DIR%\resource\csdk\security\provisioning\sample %DEBUG% sampleserver_justworks.exe -) else if "!CURRENT_ARG!"=="test" ( +) else if "!RUN_ARG!"=="test" ( %DEBUG% %BUILD_DIR%\resource\csdk\connectivity\test\catests.exe %DEBUG% %BUILD_DIR%\resource\csdk\stack\test\stacktests.exe %DEBUG% %BUILD_DIR%\resource\csdk\stack\test\cbortests.exe %DEBUG% %BUILD_DIR%\resource\csdk\security\unittest\unittest.exe %DEBUG% %BUILD_DIR%\resource\csdk\security\provisioning\unittest\unittest.exe -) else if "!CURRENT_ARG!"=="build" ( + %DEBUG% %BUILD_DIR%\resource\c_common\ocrandom\test\randomtests.exe + %DEBUG% %BUILD_DIR%\resource\c_common\oic_malloc\test\malloctests.exe + %DEBUG% %BUILD_DIR%\resource\c_common\oic_string\test\stringtests.exe + %DEBUG% %BUILD_DIR%\resource\c_common\oic_time\test\timetests.exe + %DEBUG% %BUILD_DIR%\resource\unittests\unittests.exe +) else if "!RUN_ARG!"=="build" ( echo Starting IoTivity build with these options: echo TARGET_OS=%TARGET_OS% echo TARGET_ARCH=%TARGET_ARCH% + echo UWP_APP=%UWP_APP% + echo BUILD_DIR=%BUILD_DIR% echo SECURED=%SECURED% + echo RELEASE=%RELEASE% + echo TEST=%TEST% echo LOGGING=%LOGGING% - echo WITH_RD=%WITH_RD% echo ROUTING=%ROUTING% - CL.exe | findstr "Compiler Verison" - echo.scons VERBOSE=1 %BUILD_OPTIONS% - scons VERBOSE=1 %BUILD_OPTIONS% -) else if "!CURRENT_ARG!"=="clean" ( - scons VERBOSE=1 %BUILD_OPTIONS% -c clean - rd /s /q out - del .sconsign.dblite -) else if "!CURRENT_ARG!"=="cleangtest" ( - rd /s /q extlibs\gtest\gtest-1.7.0 - del extlibs\gtest\gtest-1.7.0.zip + echo WITH_TCP=%WITH_TCP% + echo WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP% + echo MULTIPLE_OWNER=%MULTIPLE_OWNER% + echo MSVC_VERSION=%MSVC_VERSION% + echo THREAD_COUNT=%THREAD_COUNT% + echo AUTOMATIC_UPDATE=%AUTOMATIC_UPDATE% + + REM First: just build, but don't run tests. + echo.scons.bat -j %THREAD_COUNT% VERBOSE=1 TEST=0 %BUILD_OPTIONS% + call scons.bat -j %THREAD_COUNT% VERBOSE=1 TEST=0 %BUILD_OPTIONS% + if ERRORLEVEL 1 ( + echo SCons failed - exiting run.bat with code 3 + exit /B 3 + ) + + REM Second: run tests if needed, using a single SCons thread. + if "!TEST!"=="1" ( + echo.scons.bat -j 1 VERBOSE=1 TEST=1 %BUILD_OPTIONS% + call scons.bat -j 1 VERBOSE=1 TEST=1 %BUILD_OPTIONS% + if ERRORLEVEL 1 ( + echo SCons failed - exiting run.bat with code 4 + exit /B 4 + ) + ) +) else if "!RUN_ARG!"=="clean" ( + echo Cleaning IoTivity build + del /S *.ilk + echo.scons.bat -j 1 VERBOSE=1 TEST=%TEST% %BUILD_OPTIONS% -c + call scons.bat -j 1 VERBOSE=1 TEST=%TEST% %BUILD_OPTIONS% -c + if ERRORLEVEL 1 ( + echo SCons failed - exiting run.bat with code 2 + exit /B 2 + ) +) else if "!RUN_ARG!"=="cleangtest" ( + rd /s /q extlibs\gtest\googletest-release-1.7.0 + del extlibs\gtest\release-1.7.0.zip ) else ( - echo %0 - Script requires a valid argument! - goto :EOF + echo.%0 - Script requires a valid argument! + echo Exiting run.bat with code 1 + exit /B 1 ) cd %IOTIVITY_DIR% @@ -128,9 +245,41 @@ goto EOF echo %0 - Helper to build/test iotivity. Requires an argument. echo Installation: Drop this into your iotivity root directory to use it. echo. +echo. Default build settings are: debug binaries run unittests and no logging +echo. +echo. Default build parameters can be overridden using the following arguments +echo. +REM At a quick look, the "Build either amd64 or x86 architecture binaries" message +REM below seems out of alignment with the other messages underneath it. But, "^|" +REM gets echoed as a single character, so the messages are actually aligned correctly +REM in the output of "run.bat". +echo -arch [x86 ^| amd64] - Build either amd64 or x86 architecture binaries +echo. +echo -noTest - Don't run the unittests after building the binaries +echo. +echo -logging - Enable logging while building the binaries +echo. +echo -debugger - Debug the requested application +echo. +echo -release - Build release binaries +echo. +echo -threads [NUMBER_OF_THREADS] - Build in parallel using [NUMBER_OF_THREADS] threads. Default: %NUMBER_OF_PROCESSORS%. +echo. +echo -noTCP - Build with the TCP adapter disabled +echo. +echo -noSecurity - Remove security support (results in code that cannot be certified by OCF) +echo. +echo -noMOT - Remove Multiple Ownership Transfer support. +echo. +echo -automaticUpdate - Automatically update libcoap to required version. +echo. +echo -uwp - Build for the Universal Windows Platform (UWP). +echo. +echo. echo. Usage examples: +echo. echo Launch SimpleClient with debugger: -echo %0 client debug +echo %0 client -debugger echo. echo Launch SimpleServer: echo %0 server @@ -138,9 +287,30 @@ echo. echo Launch WinUIClient built in msys: echo %0 msys winuiclient echo. -echo Build: +echo Build amd64 debug binaries and run unit tests: echo %0 build echo. +echo Build amd64 release binaries w/o running tests: +echo %0 build -arch amd64 -noTest -release +echo. +echo Build x86 debug binaries and run unit tests: +echo %0 build -arch x86 +echo. +echo Build amd64 release binaries with logging enabled: +echo %0 build -arch amd64 -release -logging +echo. +echo Build using only one thread: +echo %0 build -threads 1 +echo. +echo Build with TCP adapter disabled and run unit tests: +echo %0 build -noTCP +echo. +echo Build without security support and run unit tests: +echo %0 build -noSecurity +echo. +echo Build without Multiple Ownership Transfer support and run unit tests: +echo %0 build -noMOT +echo. echo Run all tests: echo %0 test echo.