cc1plus: all warnings being treated as errors fix
[iotivity.git] / resource / csdk / security / provisioning / src / SConscript
1 # -*- mode: python; python-indent-offset: 4; indent-tabs-mode: nil -*-
2 # ******************************************************************
3 #
4 # Copyright 2015 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 Import('provisioning_env')
23
24 provisioning_lib_env = provisioning_env.Clone()
25 #Build cloud library
26 if provisioning_lib_env.get('WITH_TCP') == True and provisioning_lib_env.get('WITH_CLOUD') == True and provisioning_lib_env.get('SECURED') == '1':
27     SConscript('cloud/SConscript', 'provisioning_env')
28
29 target_os = provisioning_lib_env.get('TARGET_OS')
30
31 provisioning_lib_env.AppendUnique(CPPPATH=[
32     '#resource/csdk/security/include/experimental',
33     '#extlibs/sqlite3'
34 ])
35
36 provisioning_lib_env.PrependUnique(LIBS=['coap'])
37
38 if target_os not in ['msys_nt', 'windows']:
39     # octbstack.dll is exporting connectivity_abstraction APIs on Windows.
40     provisioning_lib_env.PrependUnique(LIBS=['connectivity_abstraction'])
41
42 provisioning_lib_env.PrependUnique(LIBS=['octbstack'])
43
44 provisioning_lib_env.AppendUnique(LIBS=['mbedtls', 'mbedx509', 'mbedcrypto'])
45
46 if target_os in ['android']:
47     provisioning_lib_env.AppendUnique(CXXFLAGS=['-frtti', '-fexceptions'])
48     provisioning_lib_env.AppendUnique(LIBS=['gnustl_static'])
49
50 if target_os in ['darwin', 'ios']:
51     provisioning_lib_env.AppendUnique(CPPDEFINES=['_DARWIN_C_SOURCE'])
52
53 if provisioning_lib_env.get('LOGGING'):
54     provisioning_lib_env.AppendUnique(CPPDEFINES=['TB_LOG'])
55
56 if provisioning_lib_env.get('MULTIPLE_OWNER') == '1':
57     provisioning_lib_env.AppendUnique(CPPDEFINES=['MULTIPLE_OWNER'])
58
59 ######################################################################
60 # Source files and Targets
61 ######################################################################
62 provisioning_src = [
63     'pmutility.c',
64     'credentialgenerator.c',
65     'otmcontextlist.c',
66     'ownershiptransfermanager.c',
67     'secureresourceprovider.c',
68     'ocprovisioningmanager.c',
69     'oxmjustworks.c',
70     'oxmrandompin.c',
71     'oxmmanufacturercert.c',
72     'provisioningdatabasemanager.c'
73 ]
74
75 if provisioning_lib_env.get('MULTIPLE_OWNER') == '1':
76     provisioning_src = provisioning_src + [
77         'multipleownershiptransfermanager.c',
78         'oxmpreconfpin.c'
79     ]
80
81 if target_os in ['linux', 'tizen', 'webos']:
82     provisioning_lib_env.ParseConfig('pkg-config --cflags --libs sqlite3')
83 else:
84     provisioning_lib_env.AppendUnique(CPPPATH=['#/extlibs/sqlite3'])
85     if target_os not in ['windows']:
86         provisioning_src = provisioning_src + ['#/extlibs/sqlite3/sqlite3.c']
87
88 if target_os in ['android']:
89     provisioning_lib_env.AppendUnique(LINKFLAGS=['-Wl,-soname,libocpmapi.so'])
90
91 internal_provisioning_lib = provisioning_lib_env.StaticLibrary(
92     'ocpmapi_internal', provisioning_src)
93 provisioningserver = Flatten(internal_provisioning_lib)
94
95 if target_os not in ['windows', 'msys_nt']:
96     static_provisioning_lib = provisioning_lib_env.StaticLibrary(
97         'ocpmapi', provisioning_src)
98     provisioningserver += Flatten(static_provisioning_lib)
99
100     if target_os not in ['ios']:
101         shared_provisioning_lib = provisioning_lib_env.SharedLibrary(
102             'ocpmapi', provisioning_src)
103         provisioningserver += Flatten(shared_provisioning_lib)
104
105 provisioning_lib_env.InstallTarget(provisioningserver, 'ocpmapi')
106 provisioning_lib_env.UserInstallTargetLib(provisioningserver, 'ocpmapi')