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