Also introduce ORIGIN for crosscompiler.
RPATH can be convenient to avoid developer to deal with environment variables
(LD_LIBRARY_PATH or PATH on windows), as we're using them for now.
In longer term, this can be replaced by relative pathes,
once the installation process is fixed
(at least on systems supporting ORIGIN).
It was tested on yocto poky master.
Bug: https://jira.iotivity.org/browse/IOT-1745
Change-Id: Ibaabc31b8dc744267e4c6c1c682d2090da9ada96
Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
Origin: https://gerrit.iotivity.org/gerrit/#/c/21589/
mpmcommon_env.AppendUnique(
CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror', '-fpic'])
-mpmcommon_env.AppendUnique(RPATH=[mpmcommon_env.get('BUILD_DIR')])
mpmcommon_env['LINKFLAGS'] = maskFlags(mpmcommon_env['LINKFLAGS'])
mpmcommon_env.PrependUnique(LIBS=[
if target_os not in ['arduino', 'windows']:
manager_env.AppendUnique(CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-manager_env.AppendUnique(RPATH=[manager_env.get('BUILD_DIR')])
manager_env.PrependUnique(LIBS=['mpmcommon'])
#####################################################################
mpmclient_env.AppendUnique(LIBS=[
'm', 'octbstack', 'ocsrm', 'mpmcommon', 'connectivity_abstraction', 'coap', 'curl'
])
-mpmclient_env.AppendUnique(
- RPATH=[os.path.join(env.get('BUILD_DIR'), 'bridging', 'plugins')])
if target_os in ['linux', 'tizen', 'yocto']:
mpmclient_env.AppendUnique(LIBS = ['rt'])
hue_env.AppendUnique(CPPDEFINES=['_DARWIN_C_SOURCE'])
hue_env.AppendUnique(CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-hue_env.AppendUnique(RPATH=[hue_env.get('BUILD_DIR')])
if hue_env.get('LOGGING'):
hue_env.AppendUnique(CPPDEFINES=['TB_LOG'])
lifx_env.AppendUnique(
CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-lifx_env.AppendUnique(RPATH=[lifx_env.get('BUILD_DIR')])
-
lifx_env['LINKFLAGS'] = maskFlags(env['LINKFLAGS'])
lifx_env.AppendUnique(LINKFLAGS=['-Wl,--allow-shlib-undefined'])
lifx_env.AppendUnique(LINKFLAGS=[
lyric_env.AppendUnique(
CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-lyric_env.AppendUnique(RPATH=[lyric_env.get('BUILD_DIR')])
-
lyric_env['LINKFLAGS'] = maskFlags(env['LINKFLAGS'])
lyric_env.AppendUnique(LINKFLAGS=['-Wl,--allow-shlib-undefined'])
lyric_env.AppendUnique(LINKFLAGS=[
nest_env.AppendUnique(
CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-nest_env.AppendUnique(RPATH=[nest_env.get('BUILD_DIR')])
-
if nest_env.get('LOGGING'):
nest_env.AppendUnique(CPPDEFINES=['TB_LOG'])
with_ra_ibb = env.get('WITH_RA_IBB')
env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
if (env.get('WITH_UPSTREAM_LIBCOAP') == '1'):
env.AppendUnique(CPPDEFINES=['WITH_UPSTREAM_LIBCOAP'])
# Load config of target os
env.SConscript(target_os + '/SConscript')
+if env.get('CROSS_COMPILE'):
+ env.Append(RPATH=env.Literal('\\$$ORIGIN'))
+else:
+ env.Append(RPATH=env.get('BUILD_DIR'))
+
# Delete the temp files of configuration
if env.GetOption('clean'):
dir = env.get('SRC_DIR')
samples_env.AppendUnique(
CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-samples_env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
if target_os in ['darwin', 'ios']:
samples_env.PrependUnique(
env.AppendUnique(CPPDEFINES=['_DARWIN_C_SOURCE'])
env.AppendUnique(CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
env.PrependUnique(LIBS=['zigbee_wrapper'])
env.AppendUnique(CPPDEFINES=['_DARWIN_C_SOURCE'])
env.AppendUnique(CXXFLAGS=['-std=c++0x', '-Wall', '-Wextra', '-Werror'])
-env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
-
env.PrependUnique(LIBS=['telegesis_wrapper'])
#####################################################################
if 'SERVER' in rd_mode:
rd_env.AppendUnique(CPPDEFINES=['RD_SERVER'])
-if target_os != 'android':
- rd_env.PrependUnique(RPATH=[rd_env.get('BUILD_DIR')])
rd_env.PrependUnique(
LIBS=['octbstack', 'oc', 'oc_logger', 'connectivity_abstraction'])
if target_os not in ['windows']:
rd_sample_app_env.AppendUnique(
CXXFLAGS=['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
-rd_sample_app_env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
rd_sample_app_env.PrependUnique(LIBS=['resource_directory', 'octbstack'])
if env.get('SECURED') == '1':
src_dir + '/resource/oc_logger/include',
])
-rd_test_env.AppendUnique(RPATH=[lib_env.get('BUILD_DIR')])
rd_test_env.PrependUnique(LIBS=['octbstack'])
if rd_test_env.get('RD_MODE'):
])
target_os = env.get('TARGET_OS')
-provisioning_sample_env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
provisioning_sample_env.AppendUnique(CPPDEFINES=['__WITH_DTLS__'])
if target_os not in ['windows']:
'#/resource/csdk/security/provisioning/include/internal'
])
tools_env.AppendUnique(CXXFLAGS=['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
-tools_env.AppendUnique(RPATH=[tools_env.get('BUILD_DIR')])
if target_os in ['windows', 'msys_nt']:
# Macro needed for Windows builds to avoid __declspec(dllexport) and
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'))
+ liboctbstack_env['RPATH']=liboctbstack_env.Literal('\\$$ORIGIN')
if env.get('SECURED') == '1':
liboctbstack_env.AppendUnique(LIBS=['mbedtls', 'mbedx509'])
if 'g++' in compiler:
samples_env.AppendUnique(CXXFLAGS=['-std=c++0x', '-Wall'])
-samples_env.AppendUnique(RPATH=[samples_env.get('BUILD_DIR')])
-
samples_env.PrependUnique(LIBS=['coap'])
if target_os not in ['msys_nt', 'windows']:
'../../csdk/security/provisioning/include/internal'
])
-examples_env.AppendUnique(RPATH=[examples_env.get('BUILD_DIR')])
examples_env.PrependUnique(LIBS=[
'ocprovision',
'oc',
oclib_env.ParseConfig('pkg-config --cflags --libs sqlite3')
if target_os in ['linux'] and oclib_env.get('SIMULATOR', False):
- oclib_env.Append(RPATH=oclib_env.Literal('\\$$ORIGIN'))
+ oclib_env['RPATH']=oclib_env.Literal('\\$$ORIGIN')
if target_os in ['msys_nt', 'windows']:
oclib_env.AppendUnique(LIBS=[
if target_os in ['linux']:
enrollee_env.AddPthreadIfNeeded()
enrollee_env.AppendUnique(LIBS=['dl'])
- enrollee_env.AppendUnique(RPATH=[enrollee_env.get('BUILD_DIR')])
enrollee_env.PrependUnique(LIBS=[
'oc',
'octbstack',
# Tizen Enrollee
######################################################################
if target_os == 'tizen':
- enrollee_env.AppendUnique(RPATH=[enrollee_env.get('BUILD_DIR')])
enrollee_env.AppendUnique(CXXFLAGS=['-pthread'])
enrollee_env.PrependUnique(LIBS=[
'oc',
# Arduino Enrollee
######################################################################
if target_os == 'arduino':
- enrollee_env.AppendUnique(RPATH=[enrollee_env.get('BUILD_DIR')])
enrollee_env.PrependUnique(LIBS=[
'oc',
'octbstack',
env.get('SRC_DIR') +
'/java/iotivity-android/build/native-libs/armeabi'
])
- easy_setup_env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
easy_setup_env.AppendUnique(CXXFLAGS=['-frtti', '-fexceptions'])
easy_setup_env.PrependUnique(LIBS=[
'oc',
easy_setup_env.AppendUnique(LIBS=['log'])
if target_os in ['linux', 'tizen']:
- easy_setup_env.AppendUnique(RPATH=[env.get('BUILD_DIR')])
easy_setup_env.AppendUnique(CXXFLAGS=['-pthread'])
easy_setup_env.PrependUnique(LIBS=[
'oc',
'#/service/easy-setup/inc',
])
-if env.get('SECURED') == '1':
- mediator_env.PrependUnique(LIBS=['mbedtls', 'mbedx509', 'mbedcrypto'])
+mediator_env.PrependUnique(LIBS=['ESMediatorRich'])
-mediator_env.PrependUnique(LIBS=[
- 'ESMediatorRich',
- 'oc',
+if env.get('SECURED') == '1':
+ mediator_env.AppendUnique(LIBS=[
+ 'ocpmapi',
+ 'ocprovision',
+ 'mbedtls',
+ 'mbedx509',
+ 'mbedcrypto',
+ ])
+
+mediator_env.AppendUnique(LIBS=['oc',
'octbstack',
'oc_logger',
'connectivity_abstraction',
])
-if env.get('SECURED') == '1':
- mediator_env.PrependUnique(LIBS=['ocpmapi', 'ocprovision'])
-
mediator = mediator_env.Program('mediator', 'mediator.cpp')
submediator = mediator_env.Program('submediator', 'submediator.cpp')
java_headers.append(os.path.join(java_headers[0], 'linux'))
java_headers.append(os.path.join(java_headers[0], 'solaris'))
simulator_env.AppendUnique(CPPPATH=java_headers)
-
-simulator_env.Append(RPATH=env.Literal('\\$$ORIGIN'))
+simulator_env['RPATH']=env.Literal('\\$$ORIGIN')
simulator_env.AppendUnique(CPPPATH=['../../extlibs/cjson'])
simulator_env.PrependUnique(LIBS=['oc', 'octbstack', 'RamlParser'])
'-fmessage-length=0'
])
raml_env.AppendUnique(CPPDEFINES=['LINUX'])
-raml_env.Append(RPATH=env.Literal('\\$$ORIGIN'))
+raml_env['RPATH']=env.Literal('\\$$ORIGIN')
raml_env.PrependUnique(LIBS=['octbstack', 'YamlParser'])
raml_env.AppendUnique(LIBS=['pthread', 'm', 'cjson'])