-> Building for a specific transport :
$ scons TARGET_OS=ios TARGET_ARCH=xxx SYS_VERSION=yyy
+Windows:
+ * Possible values for <TARGET_ARCH> are: amd64
+
+For convenience to build projects supported on Windows a batch file (run.bat) is provided
+to run many build combinations with TARGET_OS to 'windows'.
+
+1. Go to root directory
+ $ cd <top directory of the project>
+2. To clean before building:
+ $ run clean
+3. To build debug amd64 binaries:
+ $ run build
+See run.bat for more example usage parameters
+
* Additional options
* VERBOSE=true or false (Show compilation)
* RELEASE=true or false (Build for release?)
* LOGGING=true or false (Enable stack logging)
* SECURED=1 or 0 (Build with DTLS)
* TEST=1 or 0 (Run unit tests)
- * SECURED=1 or 0 (Build with DTLS)
* BUILD_SAMPLE=ON or OFF (Build with sample)
* ROUTING=GW or EP (Enable routing)
* WITH_TCP=true or false (Enable CoAP over TCP Transport, arduino is not supported)
* WITH_RA=true or false (Build with Remote Access module)
- * WITH_RD=1 or 0 (Build including Resource Directory)
+ * RD_MODE=CLIENT or SERVER (Build including Resource Directory)
* SIMULATOR=true or false (Build with simulator module)
* Possible values for <WITH_MQ> are: PUB,SUB,BROKER (Build including Message Queue)
-> PUB : publisher, SUB : subscriber, BROKER : MQ broker(not supported yet)
-Note1: Currently most IoTivity project doesn't support Windows, so you can't set
-TARGET_OS to 'windows' except the project support Windows.
-
-That's to say if the project doesn't support Windows, run:
- $ scons TARGET_OS=windows ....
-or run on Windows
- $ scons
-may always fail.
-
-Note2:
+Note:
1) for convenience, a script (auto_build.sh) is provided to run possible build
at once. Following is the usage:
if liboctbstack_env.get('ROUTING') in ['GW', 'EP']:
liboctbstack_env.Prepend(LIBS = ['routingmanager'])
+if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
+ liboctbstack_env.PrependUnique(CPPPATH = ['resource-directory/include'])
+ if 'CLIENT' in rd_mode:
+ liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_CLIENT'])
+ if 'SERVER' in rd_mode:
+ liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_SERVER'])
+ if target_os in ['tizen']:
+ liboctbstack_env.ParseConfig('pkg-config --cflags --libs sqlite3')
+ else:
+ liboctbstack_env.AppendUnique(CPPPATH = ['#extlibs/sqlite3'])
+
######################################################################
# Source files and Targets
######################################################################
OCTBSTACK_SRC + 'oicgroup.c'
]
-if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
- if 'CLIENT' in rd_mode:
- liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_CLIENT'])
- if 'SERVER' in rd_mode:
- liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_SERVER'])
-
if with_tcp == True:
liboctbstack_src.append(OCTBSTACK_SRC + 'oickeepalive.c')
+if 'SERVER' in rd_mode:
+ liboctbstack_src.append(OCTBSTACK_SRC + 'oicresourcedirectory.c')
+ if target_os not in ['tizen']:
+ liboctbstack_src.append('#extlibs/sqlite3/sqlite3.c')
+
if target_os in ['windows', 'msys_nt']:
# Avoid a name conflict with the octbstack.lib target of the SharedLibrary.
static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack_static', liboctbstack_src)
catest_env = gtest_env.Clone()
target_os = catest_env.get('TARGET_OS')
target_transport = catest_env.get('TARGET_TRANSPORT')
+rd_mode = catest_env.get('RD_MODE')
######################################################################
# Build flags
if catest_env.get('SECURED') == '1':
catest_env.AppendUnique(LIBS = ['mbedtls', 'mbedx509','mbedcrypto'])
-if catest_env.get('WITH_RD') == '1':
+if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
catest_env.PrependUnique(LIBS = ['resource_directory'])
if catest_env.get('LOGGING'):
sptest_env = gtest_env.Clone()
src_dir = sptest_env.get('SRC_DIR')
target_os = sptest_env.get('TARGET_OS')
+rd_mode = sptest_env.get('RD_MODE')
######################################################################
# Build flags
else:
sptest_env.AppendUnique(LIBS = ['octbstack'])
+if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
+ sptest_env.PrependUnique(LIBS = ['resource_directory'])
+
######################################################################
# Source files and Targets
######################################################################
srmtest_env = gtest_env.Clone()
src_dir = srmtest_env.get('SRC_DIR')
target_os = srmtest_env.get('TARGET_OS')
+rd_mode = srmtest_env.get('RD_MODE')
######################################################################
# Build flags
srmtest_env.AppendUnique(CPPDEFINES = ['HAVE_LOCALTIME_R'])
srmtest_env.AppendUnique(LIBS = ['octbstack'])
+if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
+ srmtest_env.PrependUnique(LIBS = ['resource_directory'])
+
######################################################################
# Source files and Targets
######################################################################
gtest_env = SConscript('#extlibs/gtest/SConscript')
stacktest_env = gtest_env.Clone()
target_os = stacktest_env.get('TARGET_OS')
+rd_mode = stacktest_env.get('RD_MODE')
######################################################################
# Build flags
else:
stacktest_env.PrependUnique(LIBS = ['m'])
+if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
+ stacktest_env.PrependUnique(LIBS = ['resource_directory'])
+
######################################################################
# Source files and Targets
######################################################################
set DEBUG=
if "!SECOND_ARG!"=="debug" (
- set DEBUG="%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\cdb.exe" -2 -c "g"
+ set DEBUG="%ProgramFiles(x86)%\Windows Kits\10\Debuggers\x64\cdb.exe" -2 -c "g"
)
IF "%CURRENT_ARG%" == "build" IF "%BUILD_MSYS%" == "" (
set WITH_RD=1
set ROUTING=EP
set WITH_UPSTREAM_LIBCOAP=0
-
-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% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP%
+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% RD_MODE=CLIENT ROUTING=%ROUTING% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP%
REM *** BUILD OPTIONS ***
echo SECURED=%SECURED%
echo TEST=%TEST%
echo LOGGING=%LOGGING%
- echo WITH_RD=%WITH_RD%
echo ROUTING=%ROUTING%
echo WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP%
CL.exe | findstr "Compiler Verison"