boost_b2_name = boost_base_name+os.sep+'b2'
boost_url = 'http://downloads.sourceforge.net/project/boost/boost/'+boost_version+'/'+boost_arch_name+'?r=&ts=1421801329&use_mirror=iweb'
-boost_dir = os.path.join(src_dir, 'extlibs','boost')
+boost_dir = os.path.join(src_dir,'extlibs','boost','boost')
boost_bootstrap = os.path.join(boost_dir,'bootstrap.bat')
if 'linux' == target_os :
raise SCons.Errors.EnvironmentError('Unsupported platform')
elif target_os in ['windows']:
- if not os.path.exists(boost_bootstrap) and target_os == 'windows':
- # TODO: Enable installation of Boost via SConscript
+ boost_zip_file = os.path.join(src_dir,'extlibs','boost',boost_arch_name)
+
+ if not os.path.exists(boost_bootstrap):
+
+ # Download if necessary
+ if os.path.exists(boost_zip_file):
+ boost_zip = boost_zip_file
+ else:
+ print '*** Downloading Boost zip file (> 100MB). Please wait... ***'
+ boost_zip = env.Download(boost_zip_file, boost_url)
+
+ # Unzip boost
+ print '*** Unpacking boost %s zip file ... ***' % boost_version
+ env.UnpackAll(boost_dir, boost_zip)
+
+ # Rename from boost_1_60_0 -> boost
+ os.rename(boost_base_name, 'boost')
+
+ # Sanity check, in case the above method didn't work
+ if not os.path.exists(boost_bootstrap):
print '''
*********************************** Error: ****************************************
* Please download boost from the following website:
*
* ''' + boost_url + '''
*
-* and extract the contents directly into:
+* and extract the contents directly into
*
* ''' + boost_dir + '''
*
-* such that you can find:
+* such that this build system can find:
*
* ''' + boost_bootstrap + '''
*
'../../../../logger/include',
'../../../../stack/include',
'../../../../../../extlibs/cjson',
- '../../../../../../extlibs/boost',
+ '../../../../../../extlibs/boost/boost',
'../../../../../oc_logger/include',
'../../../../../connectivity/lib/libcoap-4.1.1'
])
elif target_os in ['windows']:
SConscript(os.path.join(env.get('SRC_DIR'), 'extlibs', 'boost', 'SConscript'))
- boost_path = os.path.join(src_dir,'extlibs','boost')
+ boost_path = os.path.join(src_dir,'extlibs','boost','boost')
lib_env.AppendUnique(CPPPATH = [boost_path])
elif target_os == 'ios':
lib_env.AppendUnique(FRAMEWORKS = ['boost'])
lib_env.AppendUnique(CPPPATH = ['/usr/local/include'])
lib_env.AppendUnique(LIBPATH = ['/usr/local/lib'])
elif target_os == 'windows':
- boost_path = os.path.join(src_dir,'extlibs','boost')
+ boost_path = os.path.join(src_dir,'extlibs','boost','boost')
lib_env.AppendUnique(CPPPATH = [boost_path])
Import('env')