fix java build failure issue
[iotivity.git] / run.bat
1 @echo off
2 REM Helper script to build and run IoTivity on Windows
3 SETLOCAL ENABLEDELAYEDEXPANSION
4
5 if [%1]==[] goto USAGE
6
7 set IOTIVITY_DIR=%~dp0
8 set HOME=%USERPROFILE%
9
10 IF "%1" == "msys" (
11   set BUILD_MSYS="YES"
12   SHIFT
13 ) ELSE (
14   set BUILD_MSYS=
15 )
16
17 REM *** Default BUILD OPTIONS ***
18 set TARGET_OS=windows
19
20 if "%TARGET_ARCH%" == "" (
21   set TARGET_ARCH=amd64
22
23
24 if "%TEST%" == "" (
25   set TEST=1
26 )
27
28 if "%LOGGING%" == "" (
29   set LOGGING=0
30 )
31
32 if "%RELEASE%" == "" (
33   set RELEASE=0
34 )
35
36 set SECURED=1
37 set ROUTING=EP
38 set WITH_TCP=1
39 set WITH_UPSTREAM_LIBCOAP=1
40 set BINDIR=debug
41
42 set RUN_ARG=%1
43 SHIFT
44
45 set DEBUG=
46
47 :processArgs
48 IF NOT "%1"=="" (
49   IF "%1"=="-arch" (
50     SET TARGET_ARCH=%2
51     SHIFT
52   )
53   IF "%1"=="-noTest" (
54     SET TEST=0
55   )
56   IF "%1"=="-logging" (
57     SET LOGGING=1
58   )    
59   IF "%1"=="-debugger" (
60     set DEBUG="%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\cdb.exe" -2 -c "g" 
61   )
62   IF "%1"=="-release" (
63     SET RELEASE=1
64   )
65
66   SHIFT
67   GOTO :processArgs
68 )
69
70 IF %RELEASE% == 1 (
71   set BINDIR=release
72 )
73
74 REM We need to append the "PATH" so the octbstack.dll can be found by executables
75 IF "%BUILD_MSYS%" == "" (
76   set BUILD_DIR=out\windows\%TARGET_ARCH%\%BINDIR%
77   set PATH=!PATH!;!IOTIVITY_DIR!!BUILD_DIR!;
78 ) ELSE (
79   set BUILD_DIR=out\msys_nt\x86_64\%BINDIR%
80   set PATH=!PATH!;!BUILD_DIR!;C:\msys64\mingw64\bin
81 )
82
83 set BUILD_OPTIONS= TARGET_OS=%TARGET_OS% TARGET_ARCH=%TARGET_ARCH% RELEASE=%RELEASE% WITH_RA=0 TARGET_TRANSPORT=IP SECURED=%SECURED% WITH_TCP=%WITH_TCP% BUILD_SAMPLE=ON LOGGING=%LOGGING% TEST=%TEST% RD_MODE=CLIENT ROUTING=%ROUTING% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP%
84
85 REM Use MSVC_VERSION=12.0 for VS2013, or MSVC_VERSION=14.0 for VS2015.
86 REM If MSVC_VERSION has not been defined here, SCons chooses automatically a VS version.
87 IF NOT "%MSVC_VERSION%" == "" (
88   set BUILD_OPTIONS=%BUILD_OPTIONS% MSVC_VERSION=%MSVC_VERSION%
89 )
90
91 REM *** BUILD OPTIONS ***
92
93 if "!RUN_ARG!"=="server" (
94   cd %BUILD_DIR%\resource\examples
95   %DEBUG% simpleserver.exe
96 ) else if "!RUN_ARG!"=="client" (
97   cd %BUILD_DIR%\resource\examples
98   %DEBUG% simpleclient.exe
99 ) else if "!RUN_ARG!"=="serverhq" (
100   cd %BUILD_DIR%\resource\examples
101   %DEBUG% simpleserverHQ.exe
102 ) else if "!RUN_ARG!"=="clienthq" (
103   cd %BUILD_DIR%\resource\examples
104   %DEBUG% simpleclientHQ.exe
105 ) else if "!RUN_ARG!"=="mediaclient" (
106   cd %BUILD_DIR%\resource\examples
107   %DEBUG% mediaclient.exe
108 ) else if "!RUN_ARG!"=="mediaserver" (
109   cd %BUILD_DIR%\resource\examples
110   %DEBUG% mediaserver.exe
111 ) else if "!RUN_ARG!"=="winuiclient" (
112   cd %BUILD_DIR%\resource\examples
113   %DEBUG% winuiclient.exe
114 ) else if "!RUN_ARG!"=="occlient" (
115   cd %BUILD_DIR%\resource\csdk\stack\samples\linux\SimpleClientServer
116   %DEBUG% occlientbasicops.exe -u 0 -t 3 -c 1
117 ) else if "!RUN_ARG!"=="ocserver" (
118   cd %BUILD_DIR%\resource\csdk\stack\samples\linux\SimpleClientServer
119   %DEBUG% ocserverbasicops.exe
120 ) else if "!RUN_ARG!"=="provclient" (
121   cd %BUILD_DIR%\resource\csdk\security\provisioning\sample
122   %DEBUG% provisioningclient.exe
123 ) else if "!RUN_ARG!"=="justworks" (
124   cd %BUILD_DIR%\resource\csdk\security\provisioning\sample
125   %DEBUG% sampleserver_justworks.exe
126 ) else if "!RUN_ARG!"=="test" (
127   %DEBUG% %BUILD_DIR%\resource\csdk\connectivity\test\catests.exe
128   %DEBUG% %BUILD_DIR%\resource\csdk\stack\test\stacktests.exe
129   %DEBUG% %BUILD_DIR%\resource\csdk\stack\test\cbortests.exe
130   %DEBUG% %BUILD_DIR%\resource\csdk\security\unittest\unittest.exe
131   %DEBUG% %BUILD_DIR%\resource\csdk\security\provisioning\unittest\unittest.exe
132   %DEBUG% %BUILD_DIR%\resource\c_common\ocrandom\test\randomtests.exe
133   %DEBUG% %BUILD_DIR%\resource\c_common\oic_malloc\test\malloctests.exe
134   %DEBUG% %BUILD_DIR%\resource\c_common\oic_string\test\stringtests.exe
135   %DEBUG% %BUILD_DIR%\resource\c_common\oic_time\test\timetests.exe
136   %DEBUG% %BUILD_DIR%\resource\unittests\unittests.exe
137 ) else if "!RUN_ARG!"=="build" (
138   echo Starting IoTivity build with these options:
139   echo   TARGET_OS=%TARGET_OS%
140   echo   TARGET_ARCH=%TARGET_ARCH%
141   echo   SECURED=%SECURED%
142   echo   RELEASE=%RELEASE%
143   echo   TEST=%TEST%
144   echo   LOGGING=%LOGGING%
145   echo   ROUTING=%ROUTING%
146   echo   WITH_TCP=%WITH_TCP%
147   echo   WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP%
148   echo   MSVC_VERSION=%MSVC_VERSION%
149   echo.scons VERBOSE=1 %BUILD_OPTIONS%
150   scons VERBOSE=1 %BUILD_OPTIONS%
151 ) else if "!RUN_ARG!"=="clean" (
152   scons VERBOSE=1 %BUILD_OPTIONS% -c clean
153   rd /s /q out
154   del .sconsign.dblite
155   del extlibs\gtest\googletest*.lib
156   del extlibs\gtest\googletest-release-1.7.0\src\gtest*.obj
157   erase /s *.obj
158   erase resource\c_common\iotivity_config.h
159   erase extlibs\libcoap\coap.lib
160   erase extlibs\libcoap\libcoap\include\coap\coap_config.h
161   erase extlibs\mbedtls\mbed*.lib
162 ) else if "!RUN_ARG!"=="cleangtest" (
163   rd /s /q extlibs\gtest\googletest-release-1.7.0
164   del extlibs\gtest\release-1.7.0.zip
165 ) else (
166     echo.%0 - Script requires a valid argument!
167     goto :EOF
168 )
169
170 cd %IOTIVITY_DIR%
171
172 echo Done!
173
174 goto EOF
175
176 :USAGE
177 echo %0 - Helper to build/test iotivity.  Requires an argument.
178 echo Installation: Drop this into your iotivity root directory to use it.
179 echo.
180 echo. Default build settings are: debug binaries run unittests and no logging
181 echo.
182 echo. Default build parameters can be overridden using the following arguments
183 echo. 
184 echo   -arch [x86 ^| amd64]    - Build either amd64 or x86 architecture binaries
185 echo.
186 echo   -noTest                - Don't run the unittests after building the binaries
187 echo.
188 echo   -logging               - Enable logging while building the binaries
189 echo.
190 echo   -debugger              - Debug the requested application
191 echo.
192 echo   -release               - Build release binaries
193 echo.
194 echo. Usage examples:
195 echo   Launch SimpleClient with debugger:
196 echo      %0 client -debugger
197 echo.
198 echo   Launch SimpleServer:
199 echo      %0 server
200 echo.
201 echo   Launch WinUIClient built in msys:
202 echo      %0 msys winuiclient
203 echo.
204 echo   Build amd64 debug binaries and run unit tests:
205 echo      %0 build
206 echo.
207 echo   Build amd64 release binaries w/o running tests:
208 echo      %0 build -arch amd64 -noTest -release
209 echo.
210 echo   Build x86 debug binaries and run unit tests:
211 echo      %0 build -arch x86
212 echo.
213 echo   Build amd64 release binaries with logging enabled:
214 echo      %0 build -arch amd64 -release -logging
215 echo.
216 echo   Run all tests:
217 echo      %0 test
218 echo.
219 echo   Clean:
220 echo      %0 clean
221
222 :EOF