Fixed Arduino config setup when 'ALL' is selected as a transport.
authorJon A. Cruz <jonc@osg.samsung.com>
Sat, 21 Mar 2015 01:22:47 +0000 (18:22 -0700)
committerPatrick Lankswert <patrick.lankswert@intel.com>
Wed, 25 Mar 2015 16:00:20 +0000 (16:00 +0000)
Arduino scons config was only structured to handle one transport as a time,
and would fail to configure needed lib imports when 'ALL' was the selected
transport.

This change removes the choice of 'ALL' when Arduino is the selected OS. It
also will log an error and stop the build when more than a single transport
is selected for Arduino builds. This is mainly until resources permit
testing of the code on hardware configurations with multiple transport
shields attached.

Change-Id: I9da97df1db696904581eaccbbbc519b291b0b3ed
Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/507
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Joseph Morrow <joseph.l.morrow@intel.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
Reviewed-by: Patrick Lankswert <patrick.lankswert@intel.com>
build_common/SConscript
resource/csdk/connectivity/SConscript

index 8de3072..15f97de 100644 (file)
@@ -53,10 +53,17 @@ require_upload = ARGUMENTS.get('UPLOAD', False)
 ######################################################################
 # Common build options (release, target os, target arch)
 ######################################################################
+targets_disallow_multitransport = ['arduino']
+
 help_vars = Variables()
 help_vars.Add(BoolVariable('RELEASE', 'Build for release?', True)) # set to 'no', 'false' or 0 for debug
 help_vars.Add(EnumVariable('TARGET_OS', 'Target platform', host, host_target_map[host]))
-help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'ALL', ['ALL', 'WIFI', 'BT', 'BLE', 'ETHERNET']))
+
+if target_os in targets_disallow_multitransport:
+    help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'ETHERNET', ['WIFI', 'BT', 'BLE', 'ETHERNET']))
+else:
+    help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'ALL', ['ALL', 'WIFI', 'BT', 'BLE', 'ETHERNET']))
+
 help_vars.Add(EnumVariable('TARGET_ARCH', 'Target architecture', default_arch, os_arch_map[target_os]))
 help_vars.Add(EnumVariable('SECURED', 'Build with DTLS', '0', allowed_values=('0', '1')))
 help_vars.Add(EnumVariable('TEST', 'Run unit tests', '0', allowed_values=('0', '1')))
index a67c39c..4668011 100644 (file)
@@ -10,6 +10,14 @@ transport = env.get('TARGET_TRANSPORT')
 print "Given Transport is %s" % transport
 print "Given OS is %s" % target_os
 
+targets_disallow_multitransport = ['arduino']
+
+if target_os in targets_disallow_multitransport:
+    if ('ALL' in transport) or (len(transport) != 1):
+        print "*** Error invalid option values: TARGET_TRANSPORT"
+        print "%s disallowed until testing can validate use of multiple transports on %s %d" % (transport, target_os, len(transport))
+        Exit(1)
+
 if 'ALL' in transport:
        if target_os == 'linux':
                env.AppendUnique(CPPDEFINES = ['WIFI_ADAPTER', 'ETHERNET_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])