From 1b20cb90fb241de86c1c5653f81f772829e638cc Mon Sep 17 00:00:00 2001
From: Carlo Camilloni <carlo.camilloni@gmail.com>
Date: Thu, 23 Apr 2015 15:07:37 +0200
Subject: [PATCH] CLTools: added the possibility of setting PLUMED_ROOT as an
 enviroment variable. This should allow to move more easily a static
 executable of plumed.

I have implemented solutions 2 and 4 of #129

this close #129
---
 src/config/Config.cpp.in | 10 +++++++++-
 src/core/CLToolMain.cpp  |  3 +--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/config/Config.cpp.in b/src/config/Config.cpp.in
index 0a8885d7d..66c391c02 100644
--- a/src/config/Config.cpp.in
+++ b/src/config/Config.cpp.in
@@ -22,6 +22,7 @@
 
 #include "Config.h"
 #include "version.h"
+#include <cstdlib>
 #include <cstring>
 
 namespace PLMD{
@@ -36,7 +37,14 @@ bool isInstalled(){
 }
 
 std::string getPlumedRoot(){
-  return "@PLUMED_ROOT@";
+  char *env = std::getenv("PLUMED_ROOT");
+  std::string ss;
+  if( env == NULL) {
+    ss="@PLUMED_ROOT@";
+  } else {
+    ss=std::string( env );
+  }
+  return ss;
 }
 
 std::string getVersion(){
diff --git a/src/core/CLToolMain.cpp b/src/core/CLToolMain.cpp
index 212a1e488..ef97621ec 100644
--- a/src/core/CLToolMain.cpp
+++ b/src/core/CLToolMain.cpp
@@ -167,9 +167,8 @@ int CLToolMain::run(int argc, char **argv,FILE*in,FILE*out,Communicator& pc){
     vector<string> files=Tools::ls(root);
     if(find(files.begin(),files.end(),"patches")==files.end()) {
       string msg=
-         "ERROR: I cannot find "+root+"/patches/ directory\n";
+         "WARNING: I cannot find "+root+"/patches/ directory. Set PLUMED_ROOT or reinstall PLUMED\n\n";
       fprintf(stderr,"%s",msg.c_str());
-      return 1;
     }
   }
 
-- 
GitLab