From dd2c7c489472e8d24fd45107535fddca4bd252c5 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Sat, 15 Dec 2018 15:49:48 +0100
Subject: [PATCH] ENH: add wmakeVersioned with tracking of ThirdParty
 dependencies

- primarily for handling cmake replacement libraries
---
 wmake/scripts/cmakeFunctions | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/wmake/scripts/cmakeFunctions b/wmake/scripts/cmakeFunctions
index a1b9e5e5d1f..877d81f140d 100644
--- a/wmake/scripts/cmakeFunctions
+++ b/wmake/scripts/cmakeFunctions
@@ -124,4 +124,31 @@ cmakeVersionedInstall()
 }
 
 
+# wmake with tracking of external dependency as per cmakeVersioned
+# - use sentinel file(s) to handle paraview/vtk version changes
+#
+# 1 - depend
+# 2 - sourceDir
+# 3... wmake arguments
+#
+wmakeVersioned()
+{
+    local depend="$1"
+    local sourceDir="$2"
+    shift 2
+    local objectsDir sentinel
+
+    # Where generated files are stored
+    objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal
+
+    # Version changed
+    sentinel=$(sameDependency "$depend" "$sourceDir") || \
+        rm -rf "$objectsDir" > /dev/null 2>&1
+
+    mkdir -p "$objectsDir" \
+    && wmake "$@" \
+    && echo "$depend" >| "${sentinel:-/dev/null}"
+}
+
+
 #------------------------------------------------------------------------------
-- 
GitLab