From f68dd8b4253ce84609ee5286b43595f6000bc95f Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Thu, 3 May 2018 18:44:34 +0200
Subject: [PATCH] Fixed lepton include for asmjit

Reimported lepton fixing the include and ASMJIT guards.
---
 src/lepton/CompiledExpression.cpp | 10 +++++-----
 src/lepton/CompiledExpression.h   |  6 +++---
 src/lepton/import.sh              |  5 ++++-
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/lepton/CompiledExpression.cpp b/src/lepton/CompiledExpression.cpp
index e52e3e6d6..4a26547e7 100644
--- a/src/lepton/CompiledExpression.cpp
+++ b/src/lepton/CompiledExpression.cpp
@@ -69,7 +69,7 @@
 namespace PLMD {
 using namespace lepton;
 using namespace std;
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
     using namespace asmjit;
 #endif
 
@@ -85,7 +85,7 @@ CompiledExpression::CompiledExpression(const ParsedExpression& expression) : jit
         if (operation[i]->getNumArguments() > maxArguments)
             maxArguments = operation[i]->getNumArguments();
     argValues.resize(maxArguments);
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
     generateJitCode();
 #endif
 }
@@ -179,7 +179,7 @@ double& CompiledExpression::getVariableReference(const string& name) {
 
 void CompiledExpression::setVariableLocations(map<string, double*>& variableLocations) {
     variablePointers = variableLocations;
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
     // Rebuild the JIT code.
     
     if (workspace.size() > 0)
@@ -197,7 +197,7 @@ void CompiledExpression::setVariableLocations(map<string, double*>& variableLoca
 }
 
 double CompiledExpression::evaluate() const {
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
     return ((double (*)()) jitCode)();
 #else
     for (int i = 0; i < variablesToCopy.size(); i++)
@@ -219,7 +219,7 @@ double CompiledExpression::evaluate() const {
 #endif
 }
 
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
 static double evaluateOperation(Operation* op, double* args) {
     map<string, double>* dummyVariables = NULL;
     return op->evaluate(args, *dummyVariables);
diff --git a/src/lepton/CompiledExpression.h b/src/lepton/CompiledExpression.h
index 0ca08dd75..8554ece3c 100644
--- a/src/lepton/CompiledExpression.h
+++ b/src/lepton/CompiledExpression.h
@@ -71,8 +71,8 @@
 #include <string>
 #include <utility>
 #include <vector>
-#ifdef LEPTON_USE_JIT
-    #include "asmjit.h"
+#ifdef __PLUMED_HAS_ASMJIT
+    #include "asmjit/asmjit.h"
 #endif
 
 namespace PLMD {
@@ -133,7 +133,7 @@ private:
     mutable std::vector<double> argValues;
     std::map<std::string, double> dummyVariables;
     void* jitCode;
-#ifdef LEPTON_USE_JIT
+#ifdef __PLUMED_HAS_ASMJIT
     void generateJitCode();
     void generateSingleArgCall(asmjit::X86Compiler& c, asmjit::X86XmmVar& dest, asmjit::X86XmmVar& arg, double (*function)(double));
     std::vector<double> constants;
diff --git a/src/lepton/import.sh b/src/lepton/import.sh
index 017c8248b..064ae8b0c 100755
--- a/src/lepton/import.sh
+++ b/src/lepton/import.sh
@@ -21,7 +21,10 @@ cp $path/src/*.cpp $path/src/*.h .
 
 for file in *.h *.cpp ; do
   sed 's|lepton/||
-       s|Lepton|lepton|' $file > tmp
+       s|Lepton|lepton|
+       s|LEPTON_USE_JIT|__PLUMED_HAS_ASMJIT|g
+       s|asmjit.h|asmjit/asmjit.h|g
+      ' $file > tmp
   mv tmp $file
   dos2unix $file
 done
-- 
GitLab