From b8857ae0e675660f3bdd0d0295580b78a172bf17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Thu, 25 Jan 2018 15:02:21 +0100
Subject: [PATCH] Bugfix concerning lop for handwritten driver

---
 cmake/modules/DunePerftoolMacros.cmake         | 4 ++--
 python/dune/perftool/compile.py                | 7 ++++++-
 python/dune/perftool/pdelab/driver/__init__.py | 6 ++----
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/cmake/modules/DunePerftoolMacros.cmake b/cmake/modules/DunePerftoolMacros.cmake
index 08f6b98b..c2bda2cf 100644
--- a/cmake/modules/DunePerftoolMacros.cmake
+++ b/cmake/modules/DunePerftoolMacros.cmake
@@ -108,8 +108,8 @@ function(add_generated_executable)
                     )
 
   add_executable(${GEN_TARGET} ${GEN_SOURCE} ${GEN_OPERATOR})
-
+  target_include_directories(${GEN_TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
   add_dependencies(generation ${GEN_TARGET})
 endfunction()
 
-include(GeneratedSystemtests)
\ No newline at end of file
+include(GeneratedSystemtests)
diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py
index 694d7f12..8a95f17a 100644
--- a/python/dune/perftool/compile.py
+++ b/python/dune/perftool/compile.py
@@ -19,7 +19,9 @@ from dune.perftool.generation import (delete_cache_items,
 from dune.perftool.options import (get_option,
                                    initialize_options,
                                    )
-from dune.perftool.pdelab.driver import generate_driver
+from dune.perftool.pdelab.driver import (generate_driver,
+                                         set_driver_data,
+                                         )
 from dune.perftool.pdelab.localoperator import (generate_localoperator_basefile,
                                                 generate_localoperator_file,
                                                 generate_localoperator_kernels,
@@ -118,6 +120,9 @@ def compile_form():
     formdatas, data = read_ufl(get_option("uflfile"))
 
     with global_context(data=data, formdatas=formdatas):
+        # The driver module uses a global dictionary for storing necessary data
+        set_driver_data(formdatas, data)
+
         # Generate driver file
         if get_option("driver_file"):
             generate_driver(formdatas, data)
diff --git a/python/dune/perftool/pdelab/driver/__init__.py b/python/dune/perftool/pdelab/driver/__init__.py
index 14d0bd6c..acab1a5e 100644
--- a/python/dune/perftool/pdelab/driver/__init__.py
+++ b/python/dune/perftool/pdelab/driver/__init__.py
@@ -12,6 +12,7 @@ NB: Previously this __init__.py was a module driver.py. As it was growing,
 """
 from dune.perftool.error import PerftoolCodegenError
 from dune.perftool.generation import (generator_factory,
+                                      get_global_context_value,
                                       global_context,
                                       include_file,
                                       cached,
@@ -74,7 +75,7 @@ def is_stationary():
 
 def form_name_suffix(name, formdata):
     from dune.perftool.pdelab.localoperator import name_form
-    data = _driver_data['data']
+    data = get_global_context_value('data')
     form_name = name_form(formdata, data)
     return name + '_' + form_name
 
@@ -262,9 +263,6 @@ def check_parallel_execution():
 
 
 def generate_driver(formdatas, data):
-    # The driver module uses a global dictionary for storing necessary data
-    set_driver_data(formdatas, data)
-
     # Add check to c++ file if this program should only be used in parallel mode
     if get_option("parallel"):
         check_parallel_execution()
-- 
GitLab