From 5ec6bbca6a9a5d22b986dd1b6416f03859727015 Mon Sep 17 00:00:00 2001 From: Matthew Webster <mwebster@jalapeno19.cluster.fmrib.ox.ac.uk> Date: Thu, 24 Oct 2024 17:29:11 +0100 Subject: [PATCH] BF: Compilation must occur in output directory --- unit_tests/utils/feedsRun.fslStartup | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/unit_tests/utils/feedsRun.fslStartup b/unit_tests/utils/feedsRun.fslStartup index a20d050..3dd5b8c 100755 --- a/unit_tests/utils/feedsRun.fslStartup +++ b/unit_tests/utils/feedsRun.fslStartup @@ -4,10 +4,13 @@ import os import shlex +import sys import tempfile import subprocess as sp +from pathlib import Path + def run(cmd, ompthreads=None, blasthreads=None, fslskipglobal=None): env = os.environ.copy() @@ -33,12 +36,23 @@ def run(cmd, ompthreads=None, blasthreads=None, fslskipglobal=None): def main(): + env = os.environ.copy() + activatePath = Path(f'''{env['FSLDIR']}/bin/activate''') + print(f'''active {activatePath}''') + if not activatePath.is_file(): + activatePath='activate' - buildcmds = ['source activate $FSLDIR', + outdir = Path(sys.argv[1]) + + buildcmds = [f'''source {activatePath} $FSLDIR''', 'source $FSLDIR/etc/fslconf/fsl-devel.sh', + f'''cp Makefile test_fslStartup.cc {outdir}''', + f'''cd {outdir}''', 'make'] sp.run('; '.join(buildcmds), check=True, shell=True) + os.chdir(outdir) + # Default behaviour should be: OMP multi-threaded, BLAS single threaded. assert run('./test_fslStartup', 8, 8) == '8 1 8' assert run('./test_fslStartup', 4, 4) == '4 1 4' -- GitLab