1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
######################################################################
# This script manages third party libraries
#
#Note: The paths must keep consistent with oic-resource
######################################################################
import os
import platform
Import('env', 'lib_env')
target_os = env.get('TARGET_OS')
target_arch = env.get('TARGET_ARCH')
src_dir = env.get('SRC_DIR')
if target_os not in ['linux', 'darwin']:
utils_path = env.get('OIC_UTILS')
resource_path = src_dir + '/resource'
######################################################################
# Check dependent packages (Linux only)
######################################################################
if target_os == 'linux':
if not env.GetOption('help'):
if not target_arch == platform.machine():
print '''
*********************************** Warning ***********************************
* You are trying cross build, please make sure (%s) version libraries are
* installed! *
*******************************************************************************
''' % target_arch
conf = Configure(lib_env)
if not conf.CheckLib('boost_thread'):
print 'Did not find boost_thread, exiting!'
Exit(1)
if not conf.CheckLib('boost_system'):
print 'Did not find boost_system, exiting!'
Exit(1)
conf.Finish()
######################################################################
# The 'include' path of external libraries
######################################################################
lib_env.AppendUnique(CPPPATH = [
resource_path ,
resource_path + '/include' ,
resource_path + '/oc_logger/include',
resource_path + '/csdk/stack/include',
resource_path + '/csdk/ocsocket/include',
resource_path + '/csdk/ocrandom/include',
resource_path + '/csdk/logger/include'
])
######################################################################
# The 'include' path of third party libraries
######################################################################
if target_os == 'android':
lib_env.AppendUnique(CPPPATH = [
utils_path + '/android/boost/include',
utils_path + '/android/expat/include/expat/',
utils_path + '/android/openssl/include',
])
######################################################################
# The path of third party libraries binary
######################################################################
if target_os == 'android':
if target_arch == 'armeabi-v7a-hard':
target_arch = 'armeabi-v7a'
if target_arch not in ['x86', 'armeabi', 'armeabi-v7a']:
if not env.GetOption('help') and not env.GetOption('clean'):
print '''
*********************************** Warning ***********************************
* current only x86, armeabi, armeabi-v7a libraries are provided! *
*******************************************************************************
'''
else:
lib_env.AppendUnique(LIBPATH = [
utils_path + '/android/boost/libs/' + target_arch,
utils_path + '/android/expat/lib/' + target_arch,
utils_path + '/android/openssl/lib/' + target_arch,
])
# Too much boost warning, suppress the warning
lib_env.AppendUnique(CCFLAGS = ['-w'])
elif target_os == 'ios':
lib_env.AppendUnique(FRAMEWORKPATH = [utils_path + '/ios/frameworks/'])
lib_env.AppendUnique(FRAMEWORKS = ['boost', 'expat', 'openssl'])
elif target_os == 'darwin':
lib_env.AppendUnique(CPPPATH = ['/usr/local/include'])
lib_env.AppendUnique(LIBPATH = ['/usr/local/lib'])
Import('env')
lib_env.AppendUnique(LIBPATH = env.get('BUILD_DIR'))
|