iotivity 0.9.0
[platform/upstream/iotivity.git] / service / soft-sensor-manager / SConscript
1 ##
2 # soft-sensor-manager project build script
3 ##
4
5 Import('env')
6
7 # Add third party libraries
8 lib_env = env.Clone()
9 SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
10 soft_sensor_manager_env = lib_env.Clone()
11
12 target_os = env.get('TARGET_OS')
13 # As in the source code, it includes arduino Time library (C++)
14 # It requires compile the .c with g++
15 if target_os == 'arduino':
16         soft_sensor_manager_env.Replace(CC = env.get('CXX'))
17         soft_sensor_manager_env.Replace(CFLAGS = env.get('CXXFLAGS'))
18
19 ######################################################################
20 # Build flags
21 ######################################################################
22 if target_os not in ['windows', 'winrt']:
23         soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-DLINUX'])
24         if target_os != 'android':
25                 soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-pthread'])
26
27 if target_os == 'android':
28         soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
29         soft_sensor_manager_env.AppendUnique(LIBS = ['gnustl_static', 'compatibility'])
30
31         if not env.get('RELEASE'):
32                 soft_sensor_manager_env.AppendUnique(LIBS = ['log'])
33
34 #######################################################################
35 ## build SSM SDK
36 #######################################################################
37 sdk_env = soft_sensor_manager_env.Clone()
38 sdk_env.AppendUnique(CPPPATH = ['SSMCore/include'])
39 sdk_env.AppendUnique(CPPPATH = ['SSMCore/src'])
40 sdk_env.AppendUnique(CPPPATH = ['SDK/cpp/include'])
41
42 ssm_sdk_cpp_src = [
43                 Glob('SDK/cpp/src/*.cpp')
44                 ]
45
46 env.AppendTarget('libSSMSDK')
47 libssmsdk = sdk_env.StaticLibrary(
48                 target = 'libSSMSDK',
49                 source = [ssm_sdk_cpp_src]
50                 )               
51 sdk_env.InstallTarget(libssmsdk, 'libSSMCORE')
52
53 ######################################################################
54 # build DiscomfortIndexSensor plugin
55 ######################################################################
56 DiscomfortIndexSensor_env = soft_sensor_manager_env.Clone()
57
58 DiscomfortIndexSensor_env.AppendUnique(CCFLAGS = ['-fPIC'])
59 DISCOMFORTINDEXSENSOR_DIR = 'SoftSensorPlugin/DiscomfortIndexSensor/'
60 DiscomfortIndexSensor_env.AppendUnique(CPPPATH = [
61                 DISCOMFORTINDEXSENSOR_DIR + 'include',
62                 'SSMCore/src/SSMInterface/'
63                 ])
64
65 DiscomfortIndexSensor_src = [ Glob(DISCOMFORTINDEXSENSOR_DIR + 'src/*.cpp')]
66
67 DiscomfortIndexSensor = DiscomfortIndexSensor_env.SharedLibrary('DiscomfortIndexSensor', DiscomfortIndexSensor_src)
68 DiscomfortIndexSensor_env.InstallTarget(DiscomfortIndexSensor, 'libDiscomfortIndexSensor')
69
70 ######################################################################
71 # build SSM CORE
72 ######################################################################
73 ssmcore_env = soft_sensor_manager_env.Clone()
74
75 ssmcore_env.AppendUnique(CPPPATH = [
76                 'SSMCore/include/',
77                 'SSMCore/src/',
78                 'SSMCore/src/Common/'
79                 'SSMCore/src/QueryProcessor/'
80                 'SSMCore/src/SensorProcessor/'
81                 'SSMCore/src/SSMInterface/'
82                 ])
83
84 import os.path
85
86 SSMINTERFACE_PATH = 'SSMCore/src/SSMInterface/'
87
88 if target_os != 'android':
89         omit_src = ['SSMCore_JNI.cpp']
90         ssminterface_src = [f for f in env.Glob(SSMINTERFACE_PATH + '*.cpp') if os.path.basename(f.path) not in omit_src]
91 else :
92         ssminterface_src = Glob(SSMINTERFACE_PATH + '*.cpp')
93
94 ssm_core_cpp_src = [
95                 Glob('SSMCore/src/Common/*.cpp'),
96                 Glob('SSMCore/src/QueryProcessor/*.cpp'),
97                 Glob('SSMCore/src/SensorProcessor/*.cpp'),
98                 ssminterface_src,
99                 ]
100
101 ssm_core_c_src = [
102                 'SSMCore/src/Common/sqlite3.c'
103 ]
104
105 libssmcore = ssmcore_env.StaticLibrary(
106                 target = 'SSMCore',
107                 source = [ssm_core_cpp_src, ssm_core_c_src]
108                 )
109
110 ssmcore_env.InstallTarget(libssmcore, 'libSSMCORE')
111
112 #######################################################################
113 ## build SampleApp
114 #######################################################################
115 SConscript('SampleApp/SConscript')
116
117
118 ######################################################################
119 # Copy description xml and deliverables
120 ######################################################################
121 if target_os == 'linux':
122         Command("SSMTesterApp","SampleApp/linux/SSMTesterApp/SSMTesterApp", Copy("$TARGET", "$SOURCE"))
123         Command("SoftSensorDescription.xml", "SoftSensorPlugin/SoftSensorDescription.xml", Copy("$TARGET", "$SOURCE"))
124         Command("THSensorApp","SampleApp/linux/THSensorApp/THSensorApp", Copy("$TARGET", "$SOURCE"))
125         Command("THSensorApp1","SampleApp/linux/THSensorApp1/THSensorApp1", Copy("$TARGET", "$SOURCE"))