replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / provider / SConscript
index 1ce64de..742cceb 100755 (executable)
@@ -51,27 +51,106 @@ notification_env.AppendUnique(CPPPATH = ['../../src/common'])
 
 notification_env.PrependUnique(LIBS = [
        'oc_logger',
-       'notification_provider'
+       'oc',
+       'octbstack',
+       'notification_provider',
+        'resource_directory'
        ])
-notification_env.AppendUnique(CXXFLAGS = ['-O2', '-Wall', '-fmessage-length=0', '-std=c++0x','-frtti'])
+notification_env.AppendUnique(CXXFLAGS = ['-std=c++0x','-frtti'])
+
+if target_os not in ['windows', 'winrt']:
+       notification_env.AppendUnique(CCFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0'])
+
+if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
+       notification_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
+
+if target_os == 'linux':
+       notification_env.AppendUnique(LIBS = ['pthread'])
+       
 if target_os == 'android':
     notification_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
     notification_env.PrependUnique(LIBS = ['gnustl_shared', 'log'])
 
-if env.get('WITH_CLOUD') == True:      
+if not env.get('RELEASE') and target_os not in ['ios']:
+    notification_env.PrependUnique(LIBS = ['gcov'])
+    notification_env.AppendUnique(CCFLAGS = ['--coverage'])
+
+if env.get('WITH_CLOUD') == True:
        notification_env.AppendUnique(CPPDEFINES = ['WITH_CLOUD'])
 
+with_mq = env.get('WITH_MQ')
+if 'SUB' in with_mq:
+    notification_env.AppendUnique(CPPDEFINES = ['MQ_SUBSCRIBER', 'WITH_MQ'])
+    print "MQ SUB support"
+
+if 'PUB' in with_mq:
+    notification_env.AppendUnique(CPPDEFINES = ['MQ_PUBLISHER', 'WITH_MQ'])
+    print "MQ PUB support"
+
+if 'BROKER' in with_mq:
+    notification_env.AppendUnique(CPPDEFINES = ['MQ_BROKER', 'WITH_MQ'])
+    print "MQ Broker support"
 ######################################################################
-# Source files and Targets
+# Source files and Targets for Provider
 ######################################################################
+notification_jni_provider_env = notification_env.Clone()
+
+notificationCommonStaticObjs = [
+       notification_env.Object('../common/NSMediaContents.cpp'),
+       notification_env.Object('../common/NSMessage.cpp'),
+       notification_env.Object('../common/NSSyncInfo.cpp'),
+       notification_env.Object('../common/NSTopic.cpp'),
+       notification_env.Object('../common/NSTopicsList.cpp')]
+
+notificationCommonSharedObjs = [
+       notification_env.SharedObject('../common/NSMediaContents.cpp'),
+       notification_env.SharedObject('../common/NSMessage.cpp'),
+       notification_env.SharedObject('../common/NSSyncInfo.cpp'),
+       notification_env.SharedObject('../common/NSTopic.cpp'),
+       notification_env.SharedObject('../common/NSTopicsList.cpp')]
 
 notification_provider_src = [
-       env.Glob('src/*.cpp'),env.Glob('../common/*.cpp')]
+       env.Glob('src/*.cpp'),notificationCommonSharedObjs]
 
-providersdk = notification_env.SharedLibrary('notification_provider_wrapper', notification_provider_src)
-notification_env.InstallTarget(providersdk, 'libnotification_provider_wrapper')
-notification_env.UserInstallTargetLib(providersdk, 'libnotification_provider_wrapper')
+if target_os not in ['ios']:
+       providersdk = notification_env.SharedLibrary('notification_provider_wrapper', notification_provider_src)
+       notification_env.InstallTarget(providersdk, 'libnotification_provider_wrapper')
+       notification_env.UserInstallTargetLib(providersdk, 'libnotification_provider_wrapper')
+
+notification_provider_src = [
+       env.Glob('src/*.cpp'),notificationCommonStaticObjs]
 
 providersdk = notification_env.StaticLibrary('notification_provider_wrapper', notification_provider_src)
 notification_env.InstallTarget(providersdk, 'libnotification_provider_wrapper')
 notification_env.UserInstallTargetLib(providersdk, 'libnotification_provider_wrapper')
+notification_env.UserInstallTargetHeader('inc/NSConsumer.h', 'service/notification', 'NSConsumer.h')
+notification_env.UserInstallTargetHeader('inc/NSProviderService.h', 'service/notification', 'NSProviderService.h')
+
+Export('notificationCommonStaticObjs')
+Export('notificationCommonSharedObjs')
+
+######################################################################
+# Source files and Targets for Provider Jni
+######################################################################
+if target_os == 'android':
+       notification_jni_provider_env.AppendUnique(CPPPATH = ['../../../../extlibs/boost/boost_1_58_0'])
+       notification_jni_provider_env.AppendUnique(CPPPATH = ['../../../../android/android_api/base/jni'])
+       notification_jni_provider_env.AppendUnique(CPPPATH = ['../../android/notification-service/src/main/jni/common'])
+       notification_jni_provider_env.AppendUnique(CPPPATH = ['../../android/notification-service/src/main/jni/provider'])
+
+       notification_jni_provider_env.PrependUnique(LIBS = [
+               'notification_provider_wrapper'
+               ])
+
+       notificationJniCommonSharedObjs = [
+               notification_jni_provider_env.SharedObject('../../android/notification-service/src/main/jni/common/JniNotificationCommon.cpp')]
+
+       notification_provider_jni_src = [
+               env.Glob('../../android/notification-service/src/main/jni/provider/*.cpp'),
+               notificationJniCommonSharedObjs]
+
+       providerJni = notification_jni_provider_env.SharedLibrary('notification_provider_jni', notification_provider_jni_src)
+       notification_jni_provider_env.InstallTarget(providerJni, 'libnotification_provider_jni')
+       notification_jni_provider_env.UserInstallTargetLib(providerJni, 'libnotification_provider_jni')
+
+       Export('notificationJniCommonSharedObjs')