diff --git a/python/SConscript b/python/SConscript index 0110c50..236d281 100644 --- a/python/SConscript +++ b/python/SConscript @@ -1,58 +1,59 @@ from os.path import abspath from distutils.version import StrictVersion from subprocess import check_output, STDOUT Import('main_env') env_swig = main_env.Clone( tools=['swig'], SWIG='swig', SHLIBPREFIX='', ) if env_swig['SWIGVERSION'] is None: print "Could not find swig version" print env_swig.Dictionary() print env_swig.Environment Exit(1) if StrictVersion(env_swig['SWIGVERSION']) < StrictVersion("3.0"): print "Swig version {} is not supported by tamaas".format(env_swig['SWIGVERSION']) Exit(1) # Check user's prefered version version_out = check_output([main_env['py_exec'], "--version"], stderr=STDOUT).split(' ') version = StrictVersion(version_out[-1]) python3 = version >= StrictVersion("3.0") +print("Building wrapper for python version {}".format(version)) # Run code below to get versions from user preference and not scons versions_script = """ from __future__ import print_function import distutils.sysconfig as dsys from numpy.distutils.misc_util import get_numpy_include_dirs as numpy_dirs print(dsys.get_python_inc()) for d in numpy_dirs(): print(d)""" includes = check_output([main_env['py_exec'], "-c", versions_script]).split('\n') env_swig.AppendUnique(CPPPATH=includes) env_swig.AppendUnique(SWIGPATH=['$CPPPATH']) env_swig.AppendUnique(SWIGFLAGS=['-python', '-c++']) if python3: env_swig.AppendUnique(SWIGFLAGS=['-py3']) verbose = main_env['verbose'] if not verbose: env_swig.AppendUnique(SWIGFLAGS=['-w325', '-w315']) env_swig.AppendUnique(CXXFLAGS=['-Wno-maybe-uninitialized']) # for some warning in wrapper code env_swig.SharedLibrary( target='_tamaas.so', source=['tamaas.i'], LIBS=['Tamaas'], RPATH=[abspath('../src')] ) diff --git a/site_scons/site_init.py b/site_scons/site_init.py index ebf23a6..2c4de46 100644 --- a/site_scons/site_init.py +++ b/site_scons/site_init.py @@ -1,42 +1,42 @@ def fftw(env): """A Tool to search for fftw headers and libraries""" if env.GetOption('clean'): return env.SetDefault(FFTW_VERSION='3') env.SetDefault(FFTW_LIBRARY_WISH=[]) - print("FFTW_VERSION={0}".format(env['FFTW_VERSION'])) + print("Building for fftw version {}".format(env['FFTW_VERSION'])) if 'FFTW_INCLUDE_DIR' in env: env.AppendUnique(CPPPATH=env['FFTW_INCLUDE_DIR']) if 'FFTW_LIBRARY_DIR' in env: env.AppendUnique(LIBPATH=env['FFTW_LIBRARY_DIR']) version = env['FFTW_VERSION'] if version == "2": lib_names = {'main':'fftw'} inc_names = ['fftw.h'] else: lib_names = {'main':'fftw3','thread':'fftw3_threads','omp':'fftw3_omp'} inc_names = ['fftw3.h'] try: libs = [lib_names[i] for i in env['FFTW_LIBRARY_WISH']] except: raise SCons.Errors.StopError( 'Incompatible wishlist {0} from version {1}'.format( env['FFTW_LIBRARY_WISH'], env['FFTW_VERSION'])) env.AppendUnique(LIBS=libs) if version == "2": env.Append(LIBS='m') conf = Configure(env) if not conf.CheckLibWithHeader(libs, inc_names, 'c++'): raise SCons.Errors.StopError( 'Failed to find libraries {0} or ' 'headers {1}.'.format(str(lib_names), str(inc_names))) env = conf.Finish()