Imported Upstream version 0.9.2
[platform/upstream/iotivity.git] / service / protocol-plugin / plugin-manager / SConscript
1 ##
2 # plugin-manager project build script
3 ##
4 import os
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 plugin_manager_env = lib_env.Clone()
11
12 target_os = env.get('TARGET_OS')
13 ######################################################################
14 # Build flags
15 ######################################################################
16 plugin_manager_env.AppendUnique(CPPPATH = [
17                 '../lib/cpluff/libcpluff',
18                 'src',
19                 env.get('SRC_DIR')+'/extlibs/rapidxml'
20                 ])
21
22 if target_os == 'tizen':
23     plugin_manager_env.ParseConfig("pkg-config --cflags --libs capi-appfw-app-common")
24
25 if target_os not in ['windows', 'winrt']:
26         plugin_manager_env.AppendUnique(CXXFLAGS = ['-Wall','-std=c++0x',
27                 '-fpermissive', '-Wsign-compare'])
28
29 if target_os == 'android':
30         plugin_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions', '-DANDROID'])
31         plugin_manager_env.AppendUnique(LIBS = ['gnustl_shared', 'log'])
32
33 plugin_manager_env.AppendUnique(CPPDEFINES = ['CP_C_API=CP_EXPORT',
34                                         'CP_HOST=\"\\"'+env.get('TARGET_OS')+'\\"\"',
35                                         'CP_DATADIR=\"\\\"/usr/local/share\\\"\"',
36                                         'DLOPEN_POSIX',
37                                         'DPIC',
38                                         'CP_THREADS=\"\\\"Posix\\"\"',
39                                         'CP_SHREXT=\"\\".so\\"\"',
40                                         'CP_FNAMESEP_CHAR=\"\'/\'\"',
41                                         'CP_FNAMESEP_STR=\"\\\"/\\"\"',
42                                         'PACKAGE=\"\\\"cpluff\\\"\"'])
43
44
45 plugin_manager_env.AppendUnique(LIBS = ['oc', 'octbstack', 'expat', 'dl'])
46 ######################################################################
47 # Source files and Targets
48 ######################################################################
49 ppm_src = ['src/Plugin.cpp', 'src/PluginManager.cpp']
50 ppm = plugin_manager_env.StaticLibrary('ppm', ppm_src)
51
52 pmimpl_src = [
53                 'src/CpluffAdapter.cpp',
54                 'src/Plugin.cpp',
55                 'src/PluginManagerImpl.cpp',
56                 'src/Config.cpp']
57
58 if target_os == 'android':
59         pmimpl_src += ['src/FelixAdapter.cpp']
60
61 pmimpl_env = plugin_manager_env.Clone()
62 pmimpl_env.PrependUnique(CCFLAGS = ['-fPIC'])
63 pmimpl_env.PrependUnique(LIBS = File(env.get('BUILD_DIR') + '/libcpluff.a'))
64 pmimpl = pmimpl_env.SharedLibrary('pmimpl', pmimpl_src)
65
66 plugin_manager_env.InstallTarget([ppm, pmimpl], 'libppm')
67 plugin_manager_env.UserInstallTargetLib([ppm, pmimpl], 'libppm')
68
69 # Build JNI library for android
70 if env.get('TARGET_OS') == 'android':
71         SConscript('src/Android/jni/SConscript')