1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
From d7f37d6d9f80f31e760c56386611c6a0b36b0a9a Mon Sep 17 00:00:00 2001
From: Benjamin Lorenz <lorenz@math.tu-berlin.de>
Date: Mon, 26 Feb 2018 14:48:59 +0100
Subject: [PATCH] user dir: cleanup pre-ninja private wrapper dir
polymake fails to start when there is a pre-ninja private wrapper directory:
ninja: fatal: chdir to '.polymake/wrappers.0/build/Opt' - No such file or directory
this only occurs when 3.2 is installed in the same prefix as the old version,
otherwise it will use a different wrappers.x directory
polymake now ignores private wrapper directories without config.ninja at startup
and it will get cleaned up during create_private_wrapper when a new wrapper is requested
---
perllib/Polymake/Core/CPlusPlus.pm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/perllib/Polymake/Core/CPlusPlus.pm b/perllib/Polymake/Core/CPlusPlus.pm
index 2973fb7..e335c62 100644
--- a/perllib/Polymake/Core/CPlusPlus.pm
+++ b/perllib/Polymake/Core/CPlusPlus.pm
@@ -2063,7 +2063,9 @@ Note that debug output in some clients only appears at high debug levels (-dd an
my $wrapper_key=private_wrapper_key();
if ($PrivateDir && defined (my $dir=$private_wrappers{$wrapper_key})) {
- if (-d ($dir="$PrivateDir/$dir")) {
+ # ignore leftover directories from pre-ninja polymake
+ # it will be removed during create_private_wrapper
+ if (-d ($dir="$PrivateDir/$dir") && glob("$dir/build*/config.ninja")) {
$private_wrapper_ext=new Extension($dir, "private:");
my $ext;
foreach my $prereq (@{$private_wrapper_ext->requires}) {
|