From 1c18ff70e06263c9a39a9e5d17748c6d5de3e886 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 13 May 2022 15:07:08 +0200
Subject: [PATCH] [ogs] Preserve full bin dir when --keep-build-dir is given.

Also adapts PATH in this case. ogs is installed if option is not given.

Related to #6.
---
 ogscm/building_blocks/ogs.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/ogscm/building_blocks/ogs.py b/ogscm/building_blocks/ogs.py
index ea212cc..cafd22e 100644
--- a/ogscm/building_blocks/ogs.py
+++ b/ogscm/building_blocks/ogs.py
@@ -145,8 +145,12 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm):
             )
         )
 
+        # Install only when build dir is removed
         self.__commands.append(
-            self.build_step(target="install", parallel=self.__parallel)
+            self.build_step(
+                target=("install" if self.__remove_build else "all"),
+                parallel=self.__parallel,
+            )
         )
 
         # ctest
@@ -154,20 +158,19 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm):
             self.__commands.append(self.build_step(target="ctest"))
 
         # Cleanup
+        bin_dir = f"{self.__prefix}/build/bin"
         if self.__remove_build:
             self.__commands.append(
                 self.cleanup_step(items=[os.path.join(self.__prefix, "build")])
             )
-        else:
-            # Just run the clean-target
-            self.__commands.append(self.build_step(target="clean"))
+            bin_dir = f"{self.__prefix}/bin"
         if self.__remove_source:
             self.__commands.append(
                 self.cleanup_step(items=[os.path.join(self.__prefix, "src")])
             )
 
         # Environment
-        self.__environment_variables["PATH"] = "{0}/bin:$PATH".format(self.__prefix)
+        self.__environment_variables["PATH"] = f"{bin_dir}:$PATH"
 
         # Labels
         if self.__repo == "local":
-- 
GitLab