import os
import platform
from pathlib import Path
def _environ_prepend(var, value, separator=':'):
if value:
if var in os.environ:
os.environ[var] = value + separator + os.environ[var]
else:
os.environ[var] = value
def setenv():
from sage.env import SAGE_LOCAL, SAGE_VENV, SAGE_ARCHFLAGS, SAGE_PKG_CONFIG_PATH
if 'ARCHFLAGS' not in os.environ and SAGE_ARCHFLAGS != "unset":
os.environ['ARCHFLAGS'] = SAGE_ARCHFLAGS
_environ_prepend('PKG_CONFIG_PATH', SAGE_PKG_CONFIG_PATH)
if SAGE_LOCAL and Path(SAGE_VENV).resolve() != Path(SAGE_LOCAL).resolve():
_environ_prepend('PATH', f'{SAGE_LOCAL}/bin')
_environ_prepend('LIBRARY_PATH', f'{SAGE_LOCAL}/lib')
_environ_prepend('CPATH', f'{SAGE_LOCAL}/include')
_environ_prepend('LDFLAGS', f'-L{SAGE_LOCAL}/lib -Wl,-rpath,{SAGE_LOCAL}/lib',
separator=' ')
if platform.system() == 'Linux':
_environ_prepend('LDFLAGS', f'-Wl,-rpath-link,{SAGE_LOCAL}/lib',
separator=' ')
if Path(SAGE_VENV).resolve() != Path(SAGE_LOCAL).resolve():
_environ_prepend('PATH', f'{SAGE_VENV}/bin')