Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / service / things-manager / sdk / java / jni / SConscript
1 ##
2 # Things manager service JNI build script
3 ##
4
5 import os
6 Import('env')
7
8 # Add third party libraries
9 lib_env = env.Clone()
10 SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', exports = 'lib_env')
11
12 tm_jni_env = lib_env.Clone()
13 target_os = tm_jni_env.get('TARGET_OS')
14 tm_sdk = tm_jni_env.get('SRC_DIR') + '/service/things-manager/sdk'
15 base_jni = tm_jni_env.get('SRC_DIR') + '/android/android_api/base/jni'
16 extlibs = tm_jni_env.get('SRC_DIR') + '/extlibs'
17
18 ######################################################################
19 # Build flags
20 ######################################################################
21 tm_jni_env.AppendUnique(CXXFLAGS = ['-Wall', '-DLINUX', '-DNDEBUG'])
22 tm_jni_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions', '-std=c++0x'])
23 tm_jni_env.AppendUnique(LIBPATH = [base_jni+'/../libs/'+tm_jni_env.get('TARGET_ARCH')])
24 tm_jni_env.PrependUnique(LIBS = ['ocstack-jni', 'TGMSDKLibrary', 'oc', 'oc_logger', 'gnustl_shared', 'log'])
25
26 tm_jni_env.AppendUnique(CPPPATH = [tm_sdk+'/inc'])
27 tm_jni_env.AppendUnique(CPPPATH = [base_jni])
28 tm_jni_env.AppendUnique(CPPPATH = ['tm/inc', 'jniutil/inc', extlibs+'/timer/'])
29
30 if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
31     tm_jni_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
32
33 ######################################################################
34 # Source files and Targets
35 ######################################################################
36 tm_jni_src = [tm_jni_env.Glob('tm/src/*.cpp'), tm_jni_env.Glob('jniutil/src/*.cpp')]
37 tm_jni = tm_jni_env.SharedLibrary('things-manager-jni', tm_jni_src)
38
39 tm_jni_env.InstallTarget(tm_jni, 'libthings-manager-jni')
40 tm_jni_env.UserInstallTargetLib(tm_jni, 'libthings-manager-jni')
41
42 # Install the libraries to /libs/<TARGET_ARCH> directory
43 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni_env.get('BUILD_DIR')+'/liboc_logger.so')
44 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni_env.get('BUILD_DIR')+'/liboctbstack.so')
45 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni_env.get('BUILD_DIR')+'/liboc.so')
46 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni_env.get('BUILD_DIR')+'/libconnectivity_abstraction.so')
47 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),base_jni+'/../libs/'+tm_jni_env.get('TARGET_ARCH')+'/libocstack-jni.so')
48 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),base_jni+'/../libs/'+tm_jni_env.get('TARGET_ARCH')+'/libca-interface.so')
49 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni_env.get('BUILD_DIR')+'/libTGMSDKLibrary.so')
50 tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'),tm_jni)
51
52 gnu_lib_paths = env.get('LIBPATH')
53 for gnu_lib_path in gnu_lib_paths:
54     gnu_lib_path = gnu_lib_path + '/libgnustl_shared.so'
55     if os.path.exists(gnu_lib_path):
56         tm_jni_env.Install(tm_sdk+'/java/libs/'+tm_jni_env.get('TARGET_ARCH'), gnu_lib_path)
57         break
58