diff --git a/wmake/scripts/cmakeFunctions b/wmake/scripts/cmakeFunctions index a1b9e5e5d1f42c0a92a5df8e8b01344111a78cbc..877d81f140de4004aa67c72ebda03740e11d55f6 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}" +} + + #------------------------------------------------------------------------------