Merge test folder of test branch
[iotivity.git] / test / build / tizen / SConscript
1 '''
2 /******************************************************************
3 *
4 * Copyright 2016 Samsung Electronics All Rights Reserved.
5 *
6 *
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 ******************************************************************/
21 '''
22 ##
23 # The build script for Tizen
24 #
25 ##
26
27 import os
28 import os.path
29
30 print '\n---------------Started Building for Tizen---------------\n'
31
32 Import('env_tizen')
33
34 iotivity_root = env_tizen.get('IOTIVITY_ROOT')
35 iotivity_test_root = env_tizen.get('IOTIVITY_TEST_ROOT')
36 module = env_tizen.get('MODULE')
37 test = env_tizen.get('TEST')
38 variant_dir = env_tizen.get('VARIANT_DIR')
39 gbs_root = env_tizen.get('GBS_ROOT')
40 version = env_tizen.get('PROJECT_VERSION')
41 prevent = env_tizen.get('PREVENT')
42 target_transport = env_tizen.get('TARGET_TRANSPORT')
43 secured = env_tizen.get('SECURED')
44 push = env_tizen.get('PUSH')
45 sdk = env_tizen.get('SDK')
46 tizen_home = env_tizen.get('TIZEN_HOME')
47 target_arch = env_tizen.get('TARGET_ARCH')
48 offline = env_tizen.get('OFFLINE')
49 all_modules = env_tizen.get('ALL_MODULES')
50 cloud_service_build = env_tizen.get('CLOUD_SERVICE')
51 tls_mode = env_tizen.get('TLS_MODE')
52 kafka_root = env_tizen.get('KAFKA_ROOT')
53
54 if gbs_root is None or not os.path.isdir(gbs_root):
55     print 'Set Proper GBS Root Path'
56     exit(1)
57
58 rpms_path = gbs_root + '/local/repos/tizen/' + target_arch + '/RPMS'
59
60 if not os.path.isdir(rpms_path):
61     print 'Invalid RPMS path: ' + rpms_path
62     exit(1)
63
64 tizen_sdb = ''
65
66 if push:
67     if tizen_home is None or not os.path.isdir(tizen_home):
68         tizen_home = os.environ.get('TIZEN_HOME')
69         if not os.path.isdir(tizen_home):
70             print 'No Tizen_HOME found'
71             exit(-1)
72         env_tizen.Replace(TIZEN_HOME = tizen_home)
73
74
75     tizen_sdb = tizen_home + '/tools/sdb'
76
77     if not os.path.isfile(tizen_sdb):
78         print 'Invalid tizen_home: ' + tizen_home
79         exit(1)
80
81 if offline:
82     init_mode = '--noinit'
83 else:
84     init_mode = ''
85
86 parameters = 'IOTIVITY_ROOT' + '=' + iotivity_root
87 parameters += ' ' + 'IOTIVITY_TEST_ROOT' + '=' + iotivity_test_root
88 parameters += ' ' + 'MODULE' + '=' + str(module)
89 parameters += ' ' + 'TARGET_ARCH' + '=' + str(target_arch)
90 parameters += ' ' + 'TEST' + '=' + '\"' + str(test) + '\"'
91 parameters += ' ' + 'VARIANT_DIR' + '=' + str(variant_dir)
92 parameters += ' ' + 'GBS_ROOT' + '=' + str(gbs_root)
93 parameters += ' ' + 'RPMS_PATH' + '=' + str(rpms_path)
94 if version:
95     parameters += ' ' + 'PROJECT_VERSION' + '=' + str(version)
96 parameters += ' ' + 'TLS_MODE' + '=' + str(tls_mode)
97 parameters += ' ' + 'CLOUD_SERVICE' + '=' + str(cloud_service_build)
98 if kafka_root:
99     parameters += ' ' + 'KAFKA_ROOT' + '=' + str(kafka_root)
100 parameters += ' ' + 'PREVENT' + '=' + str(prevent)
101 if target_transport:
102     parameters += ' ' + 'TARGET_TRANSPORT' + '=' + '\"' + str(target_transport) + '\"'
103 parameters += ' ' + 'SECURED' + '=' + str(secured)
104 if push:
105     parameters += ' ' + 'PUSH' + '=' + '\"' + str(push) + '\"'
106 parameters += ' ' + 'SDK' + '=' + '\"' + str(sdk) + '\"'
107 if tizen_home:
108     parameters += ' ' + 'TIZEN_HOME' + '=' + str(tizen_home)
109 if tizen_sdb:
110     parameters += ' ' + 'TIZEN_SDB' + '=' + str(tizen_sdb)
111 if offline:
112     parameters += ' ' + 'OFFLINE' + '=--noinit'
113
114 default_targets = []
115
116 if os.path.isfile("../../extlibs/gtest-1.7.0/bin/tizen/libgtest.a"):
117     print "Gtest library exists"
118 else:
119     print "GTest library for Tizen does not exists, starts building for tizen"
120     gbs_script_gtest = "bash extlibs/gtest-1.7.0/gbsbuild.sh %s %s %s %s %s %s" % (iotivity_root, iotivity_test_root, target_arch, gbs_root, rpms_path, init_mode)
121     default_targets += [gbs_script_gtest]
122
123 if cloud_service_build:
124     if 'ic' in module or 'cs' in module:
125         cloud_build_command = 'bash ' + iotivity_test_root + '/res/cloud_resource/cloud_build.sh ' + kafka_root + ' ' + iotivity_root
126         print cloud_build_command
127         default_targets += [cloud_build_command]
128
129 for temp in all_modules:
130     if temp in module:
131         extra_parameters = ''
132         test_res_files = ''
133
134         lib_rpm_names = 'iotivity,iotivity-devel,iotivity-service'
135
136         if temp == 'ca':
137             lib_rpm_names = 'com-oic-ri'
138
139         test_res_files = iotivity_test_root + '/res/common'
140
141         if temp == 'rc':
142             test_res_files += ',' + iotivity_test_root + '/res/resource_container_xml'
143         if temp == 'pm':
144             test_res_files += ',' + iotivity_test_root + '/res/pm_resource'
145         if temp == 'ic' or temp == 'cs':
146             test_res_files += ',' + iotivity_test_root + '/res/cloud_resource'
147         if temp == 'ri':
148             test_res_files += ',' + iotivity_root + '/resource/examples/oic_svr_db_server.dat'
149
150         extra_parameters += ' ' + 'lib_rpm_names' + '=' + lib_rpm_names
151
152         if test_res_files:
153             extra_parameters += ' ' + 'test_res_files' + '=' + test_res_files
154
155         gbs_script = 'bash build/tizen/common/gbsbuild.sh ' + parameters + extra_parameters
156         print gbs_script
157         default_targets += [gbs_script]
158
159 gbs_build = env_tizen.Command('gbs_build', None, default_targets)
160
161 env_tizen.Default(gbs_build)