Automatically detect C++11 flags for supported compilers.
[platform/upstream/iotivity.git] / resource / src / SConscript
1 ##
2 # OCLib (share library) build script
3 ##
4 Import('env')
5
6 oclib_env = env.Clone()
7 ######################################################################
8 # Build flags
9 ######################################################################
10 oclib_env.AppendUnique(CPPPATH = [
11                 '../include/',
12                 '../csdk/stack/include',
13                 '../csdk/ocsocket/include',
14                 '../csdk/ocrandom/include',
15                 '../csdk/logger/include',
16                 '../csdk/libcoap',
17                 '../oc_logger/include'
18                 ])
19
20 target_os = env.get('TARGET_OS')
21 if target_os not in ['windows', 'winrt']:
22         oclib_env.AppendUnique(CXXFLAGS = ['-Wall', '-fPIC'])
23
24 if target_os == 'android':
25         oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
26         oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
27         oclib_env.AppendUnique(LIBS = ['octbstack', 'coap', 'oc_logger', 'boost_thread', 'gnustl_static', 'log', 'compatibility'])
28
29 if target_os in ['darwin', 'ios']:
30         oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
31         oclib_env.AppendUnique(LIBS = ['octbstack', 'coap', 'oc_logger'])
32
33 ######################################################################
34 # Source files and Targets
35 ######################################################################
36 oclib_src = [
37                 'OCPlatform.cpp',
38                 'OCPlatform_impl.cpp',
39                 'OCResource.cpp',
40                 'OCUtilities.cpp',
41                 'OCException.cpp',
42                 'OCRepresentation.cpp',
43                 'InProcServerWrapper.cpp',
44                 'InProcClientWrapper.cpp',
45                 'OCResourceRequest.cpp'
46         ]
47
48 shared_oclib = oclib_env.SharedLibrary('oc', oclib_src)
49 static_oclib = oclib_env.StaticLibrary('oc', oclib_src)
50 oclib_env.InstallTarget([shared_oclib, static_oclib], 'liboc')