Imported Upstream version 0.9.2
[platform/upstream/iotivity.git] / resource / csdk / connectivity / src / bt_le_adapter / SConscript
index 62707b7..c5468a1 100644 (file)
@@ -1,53 +1,43 @@
-#######################################################
-#      Building BLE adapter
-#######################################################
+################################
+#       Build BLE adapter
+################################
 
 Import('env')
-
-print"Reading ble adapter script"
+import os.path
 
 target_os = env.get('TARGET_OS')
 
-if target_os == 'tizen':
-    env.ParseConfig("pkg-config --cflags --libs capi-network-bluetooth")
-
-src_dir = './bt_le_adapter/'
-
-#Source files to build common for all platforms
-if target_os != 'arduino':
-       env.AppendUnique(CA_SRC=[src_dir+'caleadapter.c'])
-else:
-       env.AppendUnique(CA_SRC=[src_dir+'caleadapter_singlethread.c'])
-
-#Source files to build in Linux platform
-if target_os == 'linux':
-       env.AppendUnique(CA_SRC=[src_dir+'linux/caleadapter.c',
-                       ])
-
-#Source files to build in Tizen platform
-if target_os == 'tizen':
-       env.PrependUnique(CPPPATH = [src_dir + 'tizen'])
-       env.PrependUnique(CFLAGS = ['-I'+ './con/lib/tizen/ble/inc'])
-       env.PrependUnique(CFLAGS = ['-I'+ './con/lib/tizen/ble/inc/mobile'])
-       env.AppendUnique(CA_SRC=[src_dir+'tizen/cableclient.c',
-                       src_dir+'tizen/cableserver.c',
-                       src_dir+'tizen/cableutil.c',
-                       src_dir+'tizen/cablenwmonitor.c',
-                       ])
-
-#Source files to build in Arduino platform
-if target_os == 'arduino':
-       env.PrependUnique(CPPPATH = [src_dir + 'arduino'])
-       env.AppendUnique(CA_SRC=[src_dir+'arduino/cableserver.cpp',
-                       src_dir+'arduino/cablenwmonitor.cpp',
-                       ])
-
-#Source files to build in Android platform
-if target_os == 'android':
-       env.PrependUnique(CPPPATH = [src_dir + 'android'])
-       env.AppendUnique(CA_SRC=[
-                       src_dir+'android/caleclient.c',
-                       src_dir+'android/caleserver.c',
-                       src_dir+'android/calenwmonitor.c',
-                       src_dir+'android/caleutils.c'
-                       ])
+print "Reading BLE adapter script for", target_os
+
+src_dir = os.path.join(os.curdir, 'bt_le_adapter')
+
+# Source files to build common for all platforms.
+common_files = None
+common_files = [ os.path.join(src_dir,
+                                      'caleadapter.c') ]
+
+
+# Get list of target-specific source file base names, i.e. no parent
+# directories prepended to the path.
+#
+# Target-specific SConscript files are expected to return that list.
+target_files = []
+target_sconscript = os.path.join(target_os, 'SConscript')
+
+# Check for the existence of the platform-specific SConscript file
+# relative to the top-level source directory, not the build (variant)
+# directory, before calling that SConscript file to prevent a missing
+# file warning platforms that don't provide one.
+target_sconscript_abspath = str(File(target_sconscript).srcnode().abspath)
+if os.path.exists(target_sconscript_abspath):
+        target_files = env.SConscript(target_sconscript, exports='src_dir')
+
+# Now prepend the appropriate parent directories
+# (e.g. ./bt_le_adapter/linux) to each of the target source files in
+# the list.
+target_files = [ os.path.join(src_dir, target_os, f) for f in target_files ]
+
+# The list of BLE adapter source files is a combination of both the
+# common and target-specific source file lists.
+env.AppendUnique(CA_SRC = common_files + target_files)
+