X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2FSConscript;h=7aa175e92d141f62fdf08e64e5129975e9d60d01;hb=2170911bc36156172ffa7a5e1a5b738446124643;hp=559eb9554d4bdf1a59c2c71746ea09834719a8ad;hpb=fb78f5bdd5eef8a9663cc3d665951d104a8aeb61;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/SConscript b/resource/csdk/SConscript index 559eb95..7aa175e 100644 --- a/resource/csdk/SConscript +++ b/resource/csdk/SConscript @@ -29,9 +29,11 @@ SConscript('#resource/third_party_libs.scons', 'lib_env') liboctbstack_env = lib_env.Clone() target_os = env.get('TARGET_OS') +rd_mode = env.get('RD_MODE') with_ra = env.get('WITH_RA') with_ra_ibb = env.get('WITH_RA_IBB') with_tcp = env.get('WITH_TCP') +with_mq = env.get('WITH_MQ') # As in the source code, it includes arduino Time library (C++) # It requires compile the .c with g++ if target_os == 'arduino': @@ -51,6 +53,7 @@ liboctbstack_env.PrependUnique(CPPPATH = [ 'connectivity/lib/libcoap-4.1.1', 'connectivity/common/inc', 'connectivity/inc', + 'connectivity/inc/pkix', 'connectivity/api', 'connectivity/external/inc', 'security/include', @@ -58,6 +61,13 @@ liboctbstack_env.PrependUnique(CPPPATH = [ 'security/provisioning/include', ]) +if 'SUB' in with_mq: + liboctbstack_env.AppendUnique(CPPDEFINES = ['MQ_SUBSCRIBER', 'WITH_MQ']) +if 'PUB' in with_mq: + liboctbstack_env.AppendUnique(CPPDEFINES = ['MQ_PUBLISHER', 'WITH_MQ']) +if 'BROKER' in with_mq: + liboctbstack_env.AppendUnique(CPPDEFINES = ['MQ_BROKER', 'WITH_MQ']) + if target_os not in ['arduino', 'windows']: liboctbstack_env.AppendUnique(CPPDEFINES = ['WITH_POSIX']) liboctbstack_env.AppendUnique(CFLAGS = ['-std=c99']) @@ -73,6 +83,15 @@ if target_os not in ['windows']: liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) liboctbstack_env.PrependUnique(LIBS = ['ocsrm', 'coap']) + +if target_os in ['linux'] and liboctbstack_env.get('SIMULATOR', False): + liboctbstack_env.Append( RPATH = liboctbstack_env.Literal('\\$$ORIGIN')) + +if env.get('SECURED') == '1': + liboctbstack_env.AppendUnique(LIBS = ['tinydtls']) + if env.get('WITH_TCP') == True: + liboctbstack_env.AppendUnique(LIBS = ['mbedtls','mbedx509','mbedcrypto']) + if target_os in ['android', 'linux', 'tizen', 'msys_nt', 'windows']: liboctbstack_env.PrependUnique(LIBS = ['connectivity_abstraction']) @@ -83,7 +102,16 @@ if target_os in ['android', 'linux', 'tizen', 'msys_nt', 'windows']: liboctbstack_env.AppendUnique(LIBS = ['ra_xmpp']) if target_os in ['windows', 'msys_nt']: - liboctbstack_env.AppendUnique(CPPDEFINES = ['OC_EXPORT_DLL']) + # octbstack.dll is exporting ocpmapi APIs on Windows - there is no ocpmapi.dll. + liboctbstack_env.PrependUnique(LIBS = ['ocpmapi']) + + # octbstack.def specifies the list of functions exported by octbstack.dll. + liboctbstack_env.Replace(WINDOWS_INSERT_DEF = ['1']) + if env.get('TEST') == '1': + liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def'), File('octbstack_test.def')]) + else: + liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def')]) + liboctbstack_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi']) else: liboctbstack_env.AppendUnique(LIBS = ['m']) @@ -104,21 +132,12 @@ if target_os not in ['arduino', 'windows']: if target_os == 'android': liboctbstack_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,liboctbstack.so']) -if env.get('SECURED') == '1': - liboctbstack_env.AppendUnique(LIBS = ['tinydtls']) - if env.get('LOGGING'): liboctbstack_env.AppendUnique(CPPDEFINES = ['TB_LOG']) if env.get('DTLS_WITH_X509') == '1': liboctbstack_env.AppendUnique(CPPDEFINES = ['__WITH_X509__']) -if env.get('WITH_RD') == '1': - liboctbstack_env.PrependUnique(CPPPATH = ['../../service/resource-directory/include']) - liboctbstack_env.PrependUnique(LIBPATH = [env.get('BUILD_DIR') + 'service/resource-directory/include']) - liboctbstack_env.AppendUnique(CPPDEFINES = ['-DWITH_RD']) - liboctbstack_env.AppendUnique(LIBS = ['resource_directory']) - liboctbstack_env.Append(LIBS = ['c_common']) if liboctbstack_env.get('ROUTING') in ['GW', 'EP']: @@ -140,21 +159,28 @@ liboctbstack_src = [ OCTBSTACK_SRC + 'ocobserve.c', OCTBSTACK_SRC + 'ocserverrequest.c', OCTBSTACK_SRC + 'occollection.c', - OCTBSTACK_SRC + 'oicgroup.c', - OCTBSTACK_SRC + "rdpayload.c" + OCTBSTACK_SRC + 'oicgroup.c' ] +if 'CLIENT' in rd_mode or 'SERVER' in rd_mode: + liboctbstack_src.append(OCTBSTACK_SRC + 'rdpayload.c') + liboctbstack_src.append(OCTBSTACK_SRC + 'oicresourcedirectory.c') + if 'CLIENT' in rd_mode: + liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_CLIENT']) + if 'SERVER' in rd_mode: + liboctbstack_env.AppendUnique(CPPDEFINES = ['RD_SERVER']) + if with_tcp == True: liboctbstack_src.append(OCTBSTACK_SRC + 'oickeepalive.c') liboctbstack_src.extend(env['cbor_files']) -if target_os == 'windows': - liboctbstack_env.AppendUnique(CPPDEFINES = ['CBOR_API=__declspec(dllexport)', - 'CBOR_PRIVATE_API=__declspec(dllexport)' - ]) +if target_os in ['windows', 'msys_nt']: + # Avoid a name conflict with the octbstack.lib target of the SharedLibrary. + static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack_static', liboctbstack_src) +else: + static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src) -static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src) octbstack_libs = Flatten(static_liboctbstack) if target_os not in ['arduino','darwin','ios'] : @@ -168,3 +194,4 @@ liboctbstack_env.UserInstallTargetLib(octbstack_libs, 'octbstack') liboctbstack_env.UserInstallTargetHeader('stack/include/ocstackconfig.h', 'resource', 'ocstackconfig.h') liboctbstack_env.UserInstallTargetHeader('stack/include/octypes.h', 'resource', 'octypes.h') +liboctbstack_env.UserInstallTargetHeader('stack/include/ocpayload.h', 'resource', 'ocpayload.h')