summaryrefslogtreecommitdiff
path: root/service/third_party_libs.scons
blob: e9a140ceb363a8dcbad4d9e977ef728dfcacb7b7 (plain)
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'))