Page MenuHomec4science

SConscript
No OneTemporary

File Metadata

Created
Fri, May 3, 00:38

SConscript

from __future__ import print_function
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'],
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')]
)

Event Timeline