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