From 9794bcd60c8675e2c86b062c6905eae676c34c19 Mon Sep 17 00:00:00 2001
From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Date: Mon, 6 Nov 2023 01:07:50 -0500
Subject: [PATCH] Snakefile: respect ROOT_BUILD_DIR_PREFIX

---
 Snakefile                           | 14 ++++++++++----
 benchmarks/diffractive_vm/Snakefile |  8 ++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/Snakefile b/Snakefile
index dcc3abbb..7389e85f 100644
--- a/Snakefile
+++ b/Snakefile
@@ -1,13 +1,19 @@
+ROOT_BUILD_DIR = os.getenv("ROOT_BUILD_DIR", None)
+
+if ROOT_BUILD_DIR is not None:
+    ROOT_BUILD_DIR_PREFIX = f"{ROOT_BUILD_DIR.rstrip('/')}/{os.getcwd().lstrip('/')}/"
+else:
+    ROOT_BUILD_DIR_PREFIX = ""
+
 rule compile_analysis:
     input:
         "{path}/{filename}.cxx",
     output:
-        "{path}/{filename}_cxx.d",
-        "{path}/{filename}_cxx.so",
-        "{path}/{filename}_cxx_ACLiC_dict_rdict.pcm",
+        ROOT_BUILD_DIR_PREFIX + "{path}/{filename}_cxx.d",
+        ROOT_BUILD_DIR_PREFIX + "{path}/{filename}_cxx.so",
+        ROOT_BUILD_DIR_PREFIX + "{path}/{filename}_cxx_ACLiC_dict_rdict.pcm",
     shell:
         """
-unset ROOT_BUILD_DIR # use shadow rules in Snakemake instead
 root -l -b -q -e '.L {input}+'
 """
 
diff --git a/benchmarks/diffractive_vm/Snakefile b/benchmarks/diffractive_vm/Snakefile
index 0801237c..35732e1c 100644
--- a/benchmarks/diffractive_vm/Snakefile
+++ b/benchmarks/diffractive_vm/Snakefile
@@ -12,8 +12,8 @@ S3 = S3RemoteProvider(
 
 rule diffractive_vm_compile:
     input:
-        "benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so",
-        "benchmarks/diffractive_vm/analysis/plot_cxx.so",
+        ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so",
+        ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/plot_cxx.so",
 
 
 rule diffractive_vm_get:
@@ -73,7 +73,7 @@ DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file
 rule diffractive_vm_analysis:
     input:
         script="benchmarks/diffractive_vm/analysis/diffractive_vm.cxx",
-        script_compiled="benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so",
+        script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so",
         data="reco/{DETECTOR_CONFIG}/{SIM}sartre_{PARTICLE}{SUFFIX}.edm4eic.root",
     params:
         EBEAM=18,
@@ -141,7 +141,7 @@ ruleorder: diffractive_vm_combine_sartre > diffractive_vm_analysis
 rule diffractive_vm_plots:
     input:
         script="benchmarks/diffractive_vm/analysis/plot.cxx",
-        script_compiled="benchmarks/diffractive_vm/analysis/plot_cxx.so",
+        script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/plot_cxx.so",
         config="{RESULT_PREFIX}/config.json",
     output:
         "{RESULT_PREFIX}/plots_benchmark-phi-dsigmadt.pdf",
-- 
GitLab