Files
cantera/interfaces/python_minimal/SConscript
band-a-prend b3c69ac086 Fix python_minimal interface to install Cantera YAML tools
The python_minimal SConscript did't copy
cantera yaml tools to python_minimal directory
and therefore didn's install these scripts.

Signed-off-by: band-a-prend <torokhov-s-a@yandex.ru>
2021-04-10 11:16:58 -04:00

66 lines
2.8 KiB
Python

"""Minimal Python Module"""
from buildutils import *
Import('env', 'build', 'install')
localenv = env.Clone()
make_setup = build(localenv.SubstFile('setup.py', 'setup.py.in'))
# copy scripts from the full Cython module
for script in ['ctml_writer', 'ck2cti', 'ck2yaml', 'cti2yaml', 'ctml2yaml']:
# The actual script
s = build(env.Command('cantera/{}.py'.format(script),
'#interfaces/cython/cantera/{}.py'.format(script),
Copy('$TARGET', '$SOURCE')))
localenv.Depends(make_setup, s)
build_cmd = ('cd interfaces/python_minimal &&'
' $python_cmd_esc setup.py build --build-lib=../../build/python')
mod = build(localenv.Command('#build/python/cantera/__init__.py', 'setup.py',
build_cmd))
env['python_module'] = mod
if localenv['PYTHON_INSTALLER'] == 'direct':
if localenv['python_prefix'] == 'USER':
# Install to the OS-dependent user site-packages directory
extra = '--user'
if localenv['OS'] == 'Darwin':
extra += ' --prefix=""'
elif localenv['python_prefix']:
# A specific location for the Cantera python module has been given
if localenv['debian'] and localenv.subst('${python_prefix}') == '/usr/local':
# Installation to /usr/local is the default on Debian-based distributions
extra = ''
elif localenv['OS'] == 'Darwin':
extra = localenv.subst(' --prefix=${python_prefix}')
elif localenv['libdirname'] != 'lib':
# 64-bit RHEL / Fedora etc. or e.g. x32 Gentoo profile
extra = localenv.subst(
' --prefix=${{python_prefix}}'
' --install-lib=${{python_prefix}}/${{libdirname}}/python{}/site-packages'.format(py_version))
else:
extra = '--user'
localenv.AppendENVPath(
'PYTHONUSERBASE',
normpath(localenv.subst('$python_prefix')))
else:
# Install Python module in the default location
extra = ''
mod_inst = install(localenv.Command, 'dummy', mod,
build_cmd + ' install ' + extra +
' --record=../../build/python-installed-files.txt' +
' --single-version-externally-managed')
global_env = env
def find_module_dir(target, source, env):
check = pjoin('cantera', '__init__.py')
for filename in open('build/python-installed-files.txt').readlines():
filename = filename.strip()
if filename.endswith(check):
filename = filename.replace(check, '')
global_env['python_module_loc'] = normpath(filename)
break
localenv.AlwaysBuild(localenv.AddPostAction(mod_inst, find_module_dir))
env['install_python_action'] = mod_inst