Merge branch '1.3-rel' (1a2c9ee2) 01/21401/1
authorPhilippe Coval <philippe.coval@osg.samsung.com>
Wed, 12 Jul 2017 09:04:06 +0000 (11:04 +0200)
committerPhilippe Coval <philippe.coval@osg.samsung.com>
Wed, 12 Jul 2017 09:05:25 +0000 (11:05 +0200)
Relate-to: https://gerrit.iotivity.org/gerrit/21339

Change-Id: I1a2c9ee277023393e660b93ef49b19f7ef952974
Bug: https://jira.iotivity.org/browse/IOT-2453
Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
1  2 
build_common/SConscript
build_common/arduino/SConscript
build_common/linux/SConscript
build_common/windows/SConscript
service/notification/unittest/SConscript

diff --combined build_common/SConscript
@@@ -5,7 -5,6 +5,7 @@@
  ##
  import os
  import platform
 +import re
  
  project_version = '1.3.0'
  
@@@ -180,6 -179,7 +180,6 @@@ if target_os in targets_without_dtls_su
                       '0',
                       allowed_values=('0', '1')))
  else:
 -
      help_vars.Add(
          EnumVariable('SECURED',
                       'Build with DTLS',
@@@ -409,11 -409,6 +409,11 @@@ if env['CONFIG_ENVIRONMENT_IMPORT'] == 
      if os.environ['LDFLAGS'] != None:
          env.AppendUnique(LINKFLAGS=Split(os.environ['LDFLAGS']))
  
 +if target_os in ['windows']:
 +    # UnpackAll.py needs access to system PATH components that SCons
 +    # does not include by default - e.g., the path to 7z.exe.
 +    env.AppendUnique(PATH=os.environ['PATH'])
 +
  # Ensure scons is able to change its working directory
  env.SConscriptChdir(1)
  
@@@ -629,6 -624,7 +629,7 @@@ if (target_os in ['darwin', 'ios'])
      env.AppendUnique(CPPDEFINES=['_DARWIN_C_SOURCE'])
  
  if (env.get('SECURED') == '1'):
+     env.AppendUnique(CPPDEFINES=['SECURED'])
      env.AppendUnique(CPPDEFINES=['__WITH_DTLS__'])
  
  if ((env.get('SECURED') == '1') and with_tcp):
@@@ -723,7 -719,7 +724,7 @@@ if ('PUB' in with_mq)
  if ('BROKER' in with_mq):
      env.AppendUnique(CPPDEFINES=['MQ_BROKER', 'WITH_MQ'])
  
 -env.AppendUnique(CPPDEFINES = {'OC_LOG_LEVEL' : env.get('LOG_LEVEL')})
 +env.AppendUnique(CPPDEFINES={'OC_LOG_LEVEL': env.get('LOG_LEVEL')})
  
  if env.get('LOGGING'):
      env.AppendUnique(CPPDEFINES=['TB_LOG'])
@@@ -740,8 -736,10 +741,10 @@@ if 'SERVER' in rd_mode
  if with_ra_ibb:
      env.AppendUnique(CPPDEFINES=['RA_ADAPTER_IBB'])
  
- env.SConscript('external_builders.scons')
+ if env.get('RELEASE'):
+     env.AppendUnique(CPPDEFINES=['NDEBUG'])
  
+ env.SConscript('external_builders.scons')
  ######################################################################
  # Link scons to Yocto cross-toolchain ONLY when target_os is yocto
  ######################################################################
@@@ -795,13 -793,10 +798,10 @@@ if target_os == "yocto"
      '''
      Additional flags to pass to the Yocto toolchain.
      '''
-     if env.get('RELEASE'):
-         env.AppendUnique(CPPDEFINES=['NDEBUG'])
      env.AppendUnique(CPPDEFINES=['__linux__', '_GNU_SOURCE'])
      env.AppendUnique(CFLAGS=['-std=gnu99'])
      env.AppendUnique(CCFLAGS=['-Wall', '-Wextra', '-fPIC'])
      env.AppendUnique(LIBS=['dl', 'pthread', 'uuid'])
-     Export('env')
  else:
      '''
      If target_os is not Yocto, continue with the regular build process
@@@ -833,46 -828,14 +833,47 @@@ conf = Configure
  # threading and mutexes.  This will set the environment variable
  # POSIX_SUPPORTED, 1 if it is supported, 0 otherwise
  conf.CheckPThreadsSupport()
 -
  env = conf.Finish()
 +
 +######################################################################
 +# Generate Cbor from json files
  ######################################################################
 +json2cbor = env.get('BUILD_DIR') + 'resource/csdk/security/tool/json2cbor' + env.get('PROGSUFFIX')
 +
 +def generate_actions(source, target, env, for_signature):
 +    Depends(target, json2cbor)
 +    return " %s %s %s" % (json2cbor, source[0], target[0])
 +
 +builder = Builder(generator = generate_actions,
 +                  suffix = '.dat',
 +                  src_suffix = '.json')
 +
 +env.Append(BUILDERS = {'Cbor' : builder})
 +
 +
 +def ScanJSON(env, directory):
 +    actions = []
 +    if env.GetOption('clean') or env.get('SECURED') != '1':
 +        return actions
 +    dst_dir = env.get('BUILD_DIR') + '/' + directory + '/'
 +    src_dir = env.get('SRC_DIR') + '/' + directory + '/'
 +    for json_file in Glob('*.json'):
 +        actions += env.Install(dst_dir, str(json_file))
 +        if env.get('CROSS_COMPILE') != None:
 +            cbor_file = src_dir + re.sub('\.json$', '.dat', str(json_file))
 +            Install(dst_dir, cbor_file)
 +        else:
 +            cbor_file = env.Cbor(json_file)
 +            cbor_file = Flatten(cbor_file)[0].name
 +            src = dst_dir + cbor_file
 +            dst = src_dir + cbor_file
 +            Command(dst, src, Copy("$TARGET", "$SOURCE"))
 +        actions += cbor_file
 +    return actions
  
 -# must call external_builders.scons second time to properly setup
 -# UnpackAll builder this is due to the system path not being pulled
 -# in for windows till after the windows target has run.
 -env.SConscript('external_builders.scons')
 +AddMethod(env, ScanJSON)
 +
 +######################################################################
  env.SConscript('external_libs.scons')
  Return('env')
@@@ -260,7 -260,7 +260,7 @@@ target_arch = env.get('TARGET_ARCH'
  
  # Verify that the arduino, time, red bear, and nordic libraries are
  # installed.  If not, get them and install them.
 -SConscript(os.path.join(env.get('SRC_DIR'), 'extlibs', 'arduino', 'SConscript'))
 +SConscript('#extlibs/arduino/SConscript')
  arduino_home = env.get('ARDUINO_HOME')
  print 'ARDUINO_HOME = ' + env.get('ARDUINO_HOME')
  
@@@ -283,7 -283,6 +283,6 @@@ elif platform.system().lower() == 'darw
  # Debug/release relative flags
  if env.get('RELEASE'):
      env.AppendUnique(CCFLAGS=['-Os'])
-     env.AppendUnique(CPPDEFINES=['NDEBUG'])
  else:
      env.AppendUnique(CCFLAGS=['-g'])
  
@@@ -8,11 -8,6 +8,11 @@@ Import('env'
  
  print "Reading linux configuration script"
  
 +# Test Coverage Flags and Library (if RELEASE=0)
 +if not env.get('RELEASE'):
 +    env.AppendUnique(LIBS=['gcov'])
 +    env.AppendUnique(CCFLAGS=['--coverage', '-fPIC', '-O0'])
 +
  help_vars = Variables()
  if env.get('BUILD_JAVA') == True:
      if not env.get('ANDROID_GRADLE'):
@@@ -49,13 -44,9 +49,9 @@@ env.AppendENVPath('LD_LIBRARY_PATH', [b
  # Set release/debug flags
  if env.get('RELEASE'):
      env.AppendUnique(CCFLAGS=['-Os'])
-     env.AppendUnique(CPPDEFINES=['NDEBUG'])
  else:
      env.AppendUnique(CCFLAGS=['-g'])
  
- if env.get('LOGGING'):
-     env.AppendUnique(CPPDEFINES=['TB_LOG'])
  env.AppendUnique(CPPDEFINES=['WITH_POSIX', '__linux__'])
  env.AppendUnique(CFLAGS=['-std=gnu99'])
  env.AppendUnique(CCFLAGS=['-Wall', '-Wextra', '-fPIC'])
@@@ -72,12 -72,10 +72,10 @@@ if env['CC'] == 'cl'
      # Set release/debug flags
      if env.get('RELEASE'):
          env.AppendUnique(CCFLAGS=['/MD', '/O2', '/GF'])
-         env.AppendUnique(CPPDEFINES=['NDEBUG'])
      else:
          env.AppendUnique(CCFLAGS=['/MDd', '/Od', '/RTC1'])
          env.AppendUnique(LINKFLAGS=['/debug'])
  
-     env.AppendUnique(LIBPATH=[env.get('BUILD_DIR')])
  
      # Work around [IOT-1986]
      # During some Windows multi-threaded builds, SCons/Python/Pywin32 appear to try
@@@ -91,6 -89,7 +89,6 @@@
      env.PrependUnique(LIBPATH=[os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk', 'resource-directory')])
      env.PrependUnique(LIBPATH=['#extlibs/mbedtls'])
  
 -    env.AppendUnique(PATH=os.environ['PATH'])
      env['PDB'] = '${TARGET.base}.pdb'
      env.Append(LINKFLAGS=['/PDB:${TARGET.base}.pdb'])
  
@@@ -66,11 -66,12 +66,11 @@@ if target_os not in ['windows', 'winrt'
          CXXFLAGS=['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])
  
  notification_test_env.AppendUnique(LINKFLAGS=['-Wl,--no-as-needed'])
 -
 -
  notification_test_env.AppendUnique(CXXFLAGS=['-pthread'])
  notification_test_env.AppendUnique(LIBS=['pthread'])
  
  notification_test_env.PrependUnique(CPPPATH=[
 +    '#/extlibs/hippomocks/hippomocks',
      '../include',
      '../src/consumer',
      '../src/provider',
@@@ -81,7 -82,6 +81,6 @@@
  if env.get('WITH_TCP') == True:
      notification_test_env.AppendUnique(CPPDEFINES=['WITH_TCP'])
  if env.get('SECURED') == '1':
-     notification_test_env.AppendUnique(CPPDEFINES=['SECURED'])
      notification_test_env.AppendUnique(
          LIBS=['mbedtls', 'mbedx509', 'mbedcrypto'])
      notification_test_env.AppendUnique(