help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile))
help_vars.Add(EnumVariable('WITH_UPSTREAM_LIBCOAP', 'Use latest stable version of LibCoAP downloaded from github', default_with_upstream_libcoap, allowed_values=('0','1')))
help_vars.Add(BoolVariable('WITH_ENV', 'Use compiler options from environment', False))
+help_vars.Add(BoolVariable('AUTOMATIC_UPDATE', 'Makes libcoap update automatically to the required versions if needed.', False))
if target_os == 'windows':
# For VS2013, MSVC_VERSION is '12.0'. For VS2015, MSVC_VERSION is '14.0'.
# Right now this script assumes the revision is a tag, and not a branch or an arbitrary
# commit. If this changes, update the check below, or else the script will always conclude
# the repo is not up to date because a tag with that name doesn't exist.
-libcoap_version = 'IoTivity-1.2.1c'
+libcoap_version = 'IoTivity-1.2.1d'
libcoap_dir = os.path.join(src_dir, 'extlibs', 'libcoap', 'libcoap')
libcoap_checkout_command = 'git clone ' + libcoap_repo_url + '.git extlibs/libcoap/libcoap -b ' + libcoap_version
-libcoap_update_command = 'git fetch && git checkout -f ' + libcoap_version
+libcoap_update_command = 'git fetch --tags && git checkout -f ' + libcoap_version
libcoap_change_dir_command = 'cd ' + libcoap_dir
if with_upstream_libcoap == '1':
print '''
*********************************** Info: *****************************************
* Your libCoAP repo is not up to date with the latest version we require (%s).
+***********************************************************************************
+ ''' %(libcoap_version)
+ if libcoap_env.get('AUTOMATIC_UPDATE'):
+ print '''
+*********************************** Info: *****************************************
+* Automatically updating libcoap to version %s.
+***********************************************************************************
+ ''' %(libcoap_version)
+ subprocess.check_output(libcoap_update_command, shell = True)
+ else:
+ print '''
+*********************************** Info: *****************************************
* Please update using the following commands:
* %s
* %s
***********************************************************************************
- ''' %(libcoap_version, libcoap_change_dir_command, libcoap_update_command)
- Exit(1)
+ ''' %(libcoap_change_dir_command, libcoap_update_command)
+ Exit(1)
else:
print '''
libcoap_src_root = src_dir + '/resource/csdk/connectivity/lib/libcoap-4.1.1'
libcoap_src = glob.glob(os.path.join(libcoap_src_root, '*.c'))
+if libcoap_env['CC'] == 'cl':
+ libcoap_env.AppendUnique(CCFLAGS = ['/W4', '/WX'])
+
libcoap = libcoap_env.StaticLibrary('coap', libcoap_src, OBJPREFIX='libcoap_')
Clean(libcoap, config_h_file_path)
REM *** Default BUILD OPTIONS ***
set TARGET_OS=windows
+if "%JENKINS_HOME%" == "" (
+ set AUTOMATIC_UPDATE=0
+) else (
+ set AUTOMATIC_UPDATE=1
+)
+
if "%TARGET_ARCH%" == "" (
set TARGET_ARCH=amd64
)
IF /I "%1"=="-noMOT" (
set MULTIPLE_OWNER=0
)
+ IF /I "%1"=="-automaticUpdate" (
+ set AUTOMATIC_UPDATE=1
+ )
SHIFT
GOTO :processArgs
set PATH=!PATH!;!BUILD_DIR!;C:\msys64\mingw64\bin
)
-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=%RD_MODE% ROUTING=%ROUTING% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP% MULTIPLE_OWNER=%MULTIPLE_OWNER% -j %THREAD_COUNT%
+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=%RD_MODE% ROUTING=%ROUTING% WITH_UPSTREAM_LIBCOAP=%WITH_UPSTREAM_LIBCOAP% MULTIPLE_OWNER=%MULTIPLE_OWNER% -j %THREAD_COUNT% AUTOMATIC_UPDATE=%AUTOMATIC_UPDATE%
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.
echo MULTIPLE_OWNER=%MULTIPLE_OWNER%
echo MSVC_VERSION=%MSVC_VERSION%
echo THREAD_COUNT=%THREAD_COUNT%
+ echo AUTOMATIC_UPDATE=%AUTOMATIC_UPDATE%
echo.scons VERBOSE=1 %BUILD_OPTIONS%
scons VERBOSE=1 %BUILD_OPTIONS%
) else if "!RUN_ARG!"=="clean" (
echo.
echo -noMOT - Remove Multiple Ownership Transfer support.
echo.
+echo -automaticUpdate - Automatically update libcoap to required version.
+echo.
+echo.
echo. Usage examples:
echo.
echo Launch SimpleClient with debugger: