Providing build option to disable BLE server
[platform/upstream/iotivity.git] / resource / csdk / connectivity / SConscript
index 7cb81e2..d5ebfe2 100644 (file)
 ##
-# CA library (share library) build script
+# CA build script
 ##
+
 Import('env')
 
-# Add third party libraries
-lib_env = env.Clone()
-SConscript(env.get('SRC_DIR') + '/resource/third_party_libs.scons', 'lib_env')
+target_os = env.get('TARGET_OS')
+transport = env.get('TARGET_TRANSPORT')
+build_sample = env.get('BUILD_SAMPLE')
+with_ra = env.get('WITH_RA')
+with_tcp = env.get('WITH_TCP')
+disable_tcp_server = env.get('DISABLE_TCP_SERVER')
+disable_ble_server = env.get('DISABLE_BLE_SERVER')
+with_mq = env.get('WITH_MQ')
+ble_custom_adv = env.get('BLE_CUSTOM_ADV')
+
+print "Given Transport is %s" % transport
+print "Given OS is %s" % target_os
+print "BUILD_SAMPLE is %s" % build_sample
+print "MQ flag is %s" % with_mq
 
-calib_env = lib_env.Clone()
-######################################################################
-# Build flags
-######################################################################
-calib_env.AppendUnique(CPPPATH = [
-               './common/inc',
-               './api',
-               './inc',
-               './src/ethernet_adapter/linux',
-               './src/wifi_adapter/linux',
-               './src/bt_edr_adapter/linux',
-               './src/bt_le_adapter/linux',
-               './lib/libcoap-4.1.1'
-               ])
+targets_disallow_multitransport = ['arduino']
 
-target_os = env.get('TARGET_OS')
+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 with_ra == True:
+                       env.AppendUnique(CPPDEFINES = ['RA_ADAPTER'])
+       if with_tcp == True:
+                       env.AppendUnique(CPPDEFINES = ['TCP_ADAPTER'])
+       if disable_tcp_server == True:
+                       env.AppendUnique(CPPDEFINES = ['DISABLE_TCP_SERVER'])
+       if disable_ble_server == True:
+               if target_os in ['tizen']:
+                       env.AppendUnique(CPPDEFINES = ['DISABLE_BLE_SERVER'])
+       if target_os in ['linux']:
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','LE_ADAPTER'])
+       elif target_os == 'tizen':
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER'])
+       elif target_os == 'android':
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER', 'NFC_ADAPTER'])
+       elif target_os in['darwin','ios']:
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
+       elif target_os in ['msys_nt', 'windows']:
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
+       else:
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER'])
+       print "CA Transport is ALL"
+else:
+       if 'BT' in transport:
+               if target_os in ['linux']:
+                       print "CA Transport BT is not supported in Linux"
+                       Exit(1)
+               else:
+                       env.AppendUnique(CPPDEFINES = ['EDR_ADAPTER'])
+                       print "CA Transport is BT"
+       else:
+               env.AppendUnique(CPPDEFINES = ['NO_EDR_ADAPTER'])
+
+       if 'BLE' in transport:
+               env.AppendUnique(CPPDEFINES = ['LE_ADAPTER'])
+               print "CA Transport is BLE"
+               if ble_custom_adv in ['True']:
+                       env.AppendUnique(CPPDEFINES = ['BLE_CUSTOM_ADVERTISE'])
+                       print "BLE Custom advertisement supported"
+               else:
+                       print "BLE Custom advertisement not supported"
+               if disable_ble_server == True:
+                       if target_os in ['tizen']:
+                               env.AppendUnique(CPPDEFINES = ['DISABLE_BLE_SERVER'])
+                               print "BLE Server Disabled"
+       else:
+               env.AppendUnique(CPPDEFINES = ['NO_LE_ADAPTER'])
+
+       if 'IP' in transport:
+               env.AppendUnique(CPPDEFINES = ['IP_ADAPTER'])
+               print "CA Transport is IP"
+       else:
+               env.AppendUnique(CPPDEFINES = ['NO_IP_ADAPTER'])
+
+       if with_tcp == True:
+               if target_os in ['linux', 'tizen', 'android', 'arduino', 'ios', 'tizenrt']:
+                       env.AppendUnique(CPPDEFINES = ['TCP_ADAPTER', 'WITH_TCP'])
+                       print "CA Transport is TCP"
+               else:
+                       print "CA Transport TCP is not supported "
+                       Exit(1)
+       else:
+               env.AppendUnique(CPPDEFINES = ['NO_TCP_ADAPTER'])
 
-if target_os not in ['windows', 'winrt']:
-       calib_env.AppendUnique(CFLAGS = ['-Wall', '-fPIC', '-fstack-protector-all']);
-       calib_env.AppendUnique(CPPDEFINES = [
-                       '__LINUX__', 'WITH_POSIX',
-                       'NO_EDR_ADAPTER', 'NO_LE_ADAPTER',
-                       'WIFI_ADAPTER', 'ETHERNET_ADAPTER',
-                       #'TB_LOG'
-                       ])
+       if disable_tcp_server == True:
+               if target_os in ['linux', 'tizen', 'android', 'arduino', 'ios', 'tizenrt']:
+                       env.AppendUnique(CPPDEFINES = ['DISABLE_TCP_SERVER'])
 
-calib_env.ParseConfig('pkg-config --cflags glib-2.0')
+       if 'NFC' in transport:
+               if target_os in['android']:
+                       env.AppendUnique(CPPDEFINES = ['NFC_ADAPTER'])
+                       print "CA Transport is NFC"
+               else:
+                       print "CA Transport NFC is not supported "
+                       Exit(1)
+       else:
+               env.AppendUnique(CPPDEFINES = ['NO_NFC_ADAPTER'])
 
-#TODO add SConscript for libcoap
-#`/home/tester/iotivity/resource/csdk/connectivity/lib/libcoap-4.1.1'
+if 'SUB' in with_mq:
+       env.AppendUnique(CPPDEFINES = ['MQ_SUBSCRIBER', 'WITH_MQ'])
+       print "MQ SUB support"
 
-######################################################################
-# Source files and Targets
-######################################################################
-calib_src = [
-               './common/src/logger.c',
-               './common/src/oic_logger.c',
-               './common/src/oic_console_logger.c',
-               './common/src/oic_malloc.c',
-               './common/src/oic_string.c',
-               './common/src/uqueue.c',
-               './common/src/uarraylist.c',
-               './common/src/umutex.c',
-               './common/src/uthreadpool.c',
-               './src/caretransmission.c',
-               './src/caconnectivitymanager.c',
-               './src/caremotehandler.c',
-               './src/cainterfacecontroller.c',
-               './src/camessagehandler.c',
-               './src/caqueueingthread.c',
-               './src/canetworkconfigurator.c',
-               './src/caprotocolmessage.c',
-               './src/adapter_util/caadapterutils.c',
-               './src/ethernet_adapter/caethernetadapter.c',
-               './src/wifi_adapter/cawifiadapter.c',
-               './src/bt_edr_adapter/linux/caedradapter.c',
-               './src/bt_le_adapter/linux/caleadapter.c',
-               './src/wifi_adapter/linux/cawifiserver.c',
-               './src/wifi_adapter/linux/cawificlient.c',
-               './src/wifi_adapter/linux/cawifinwmonitor.c',
-               './src/ethernet_adapter/linux/caethernetserver.c',
-               './src/ethernet_adapter/linux/caethernetclient.c',
-               './src/ethernet_adapter/linux/caethernetnwmonitor.c'
-       ]
+if 'PUB' in with_mq:
+       env.AppendUnique(CPPDEFINES = ['MQ_PUBLISHER', 'WITH_MQ'])
+       print "MQ PUB support"
 
-calib = calib_env.SharedLibrary('connectivity_abstraction', calib_src)
-calib_env.InstallTarget(calib, 'libconnectivity_abstraction')
+if 'BROKER' in with_mq:
+       env.AppendUnique(CPPDEFINES = ['MQ_BROKER', 'WITH_MQ'])
+       print "MQ Broker support"
 
+env.SConscript('./src/SConscript')