Minimized hardcoding of CA transport adapter source file lists.
[platform/upstream/iotivity.git] / resource / csdk / connectivity / src / bt_le_adapter / SConscript
1 ################################
2 #       Build BLE adapter
3 ################################
4
5 Import('env')
6 import os.path
7
8 target_os = env.get('TARGET_OS')
9
10 print "Reading BLE adapter script for", target_os
11
12 src_dir = os.path.join(os.curdir, 'bt_le_adapter')
13
14 # Source files to build common for all platforms.
15 common_files = None
16 if target_os is not 'arduino':
17         common_files = [ os.path.join(src_dir,
18                                       'caleadapter.c') ]
19 else:
20         common_files = [ os.path.join(src_dir,
21                                       'caleadapter_singlethread.c') ]
22
23 # Get list of target-specific source file base names, i.e. no parent
24 # directories prepended to the path.
25 #
26 # Target-specific SConscript files are expected to return that list.
27 target_files = []
28 target_sconscript = os.path.join(target_os, 'SConscript')
29
30 # Check for the existence of the platform-specific SConscript file
31 # relative to the top-level source directory, not the build (variant)
32 # directory, before calling that SConscript file to prevent a missing
33 # file warning platforms that don't provide one.
34 target_sconscript_abspath = str(File(target_sconscript).srcnode().abspath)
35 if os.path.exists(target_sconscript_abspath):
36         target_files = env.SConscript(target_sconscript, exports='src_dir')
37
38 # Now prepend the appropriate parent directories
39 # (e.g. ./bt_le_adapter/linux) to each of the target source files in
40 # the list.
41 target_files = [ os.path.join(src_dir, target_os, f) for f in target_files ]
42
43 # The list of BLE adapter source files is a combination of both the
44 # common and target-specific source file lists.
45 env.AppendUnique(CA_SRC = common_files + target_files)
46