Skip to content

Commit 6ad5a84

Browse files
authored
Set SOFA_ROOT if not set and successfully guessed (#223)
On linux (and mac) the process to guess SOFA_ROOT only print it but does not do anything with it... So this PR set this value (while python is running) so Sofa under python can find its .so if SOFA_ROOT is not set.
1 parent 72d62be commit 6ad5a84

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

bindings/Sofa/package/__init__.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,29 @@
4848
if os.path.isdir(os.path.abspath(sofa_root_guess + '/lib' )):
4949
print("Guessed SOFA_ROOT: " + sofa_root_guess)
5050
sofa_root = sofa_root_guess
51+
os.environ["SOFA_ROOT"] = sofa_root
5152
else:
5253
print("Warning: cannot guess SOFA_ROOT",
5354
"Loading SOFA libraries will likely fail and/or SOFA won't find its resources.")
5455

55-
# check if SOFAPYTHON3_ROOT has been (well) set
56-
sofapython3_root = os.environ.get('SOFAPYTHON3_ROOT')
57-
if sofapython3_root:
58-
print("Using environment variable SOFAPYTHON3_ROOT: " + sofapython3_root)
59-
else:
60-
print("Warning: environment variable SOFAPYTHON3_ROOT is empty. Trying to guess it.")
61-
# try a guess from <sofapython3_root>/lib/python3/site-packages/Sofa
62-
sofapython3_root_guess = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + '/../../../..')
63-
if os.path.isdir(os.path.abspath(sofapython3_root_guess + '/lib' )):
64-
print("Guessed SOFAPYTHON3_ROOT: " + sofapython3_root_guess)
65-
sofapython3_root = sofapython3_root_guess
56+
if sofa_root and sys.platform == 'win32':
57+
58+
# check if SOFAPYTHON3_ROOT has been (well) set, only useful for Windows
59+
sofapython3_root = os.environ.get('SOFAPYTHON3_ROOT')
60+
if sofapython3_root:
61+
print("Using environment variable SOFAPYTHON3_ROOT: " + sofapython3_root)
6662
else:
67-
print("Warning: cannot guess SOFAPYTHON3_ROOT",
68-
"Loading SofaPython3 modules will likely fail.")
63+
print("Warning: environment variable SOFAPYTHON3_ROOT is empty. Trying to guess it.")
64+
# try a guess from <sofapython3_root>/lib/python3/site-packages/Sofa
65+
sofapython3_root_guess = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + '/../../../..')
66+
if os.path.isdir(os.path.abspath(sofapython3_root_guess + '/lib' )):
67+
print("Guessed SOFAPYTHON3_ROOT: " + sofapython3_root_guess)
68+
sofapython3_root = sofapython3_root_guess
69+
os.environ["SOFAPYTHON3_ROOT"] = sofapython3_root
70+
else:
71+
print("Warning: cannot guess SOFAPYTHON3_ROOT",
72+
"Loading SofaPython3 modules will likely fail.")
6973

70-
if sofa_root and sys.platform == 'win32':
7174
# Windows-only: starting from python 3.8, python wont read the env. variable PATH to get SOFA's dlls.
7275
# os.add_dll_directory() is the new way to add paths for python to get external libraries.
7376
sofa_bin_path = sofa_root + "\\bin"

0 commit comments

Comments
 (0)