diff --git a/cmake/modules/DunePerftoolMacros.cmake b/cmake/modules/DunePerftoolMacros.cmake index dc5b66fce6cd26402597f5bd7dbd83a16d54c1ba..f64ba56bb5380ba4e03737069d808cad0ebade41 100644 --- a/cmake/modules/DunePerftoolMacros.cmake +++ b/cmake/modules/DunePerftoolMacros.cmake @@ -43,6 +43,17 @@ # form compiler changed. # +add_custom_target(generation) + +# Gather a list of form compiler sources to add as dependencies +# to have correct retriggers of generated executables +if(CMAKE_PROJECT_NAME STREQUAL dune-perftool) + set(UFL2PDELAB_GLOB_PATTERN "${CMAKE_SOURCE_DIR}/python/*.py") +else() + # TODO: How do we get to the source here??? +endif() +file(GLOB_RECURSE UFL2PDELAB_SOURCES ${UFL2PDELAB_GLOB_PATTERN}) + function(add_generated_executable) set(OPTIONS) set(SINGLE TARGET OPERATOR DRIVER UFLFILE) @@ -92,8 +103,11 @@ function(add_generated_executable) --driver-file ${GEN_DRIVER} ${GEN_FORM_COMPILER_ARGS} ${GEN_UFLFILE} + DEPENDS ${GEN_UFLFILE} ${UFL2PDELAB_SOURCES} COMMENT "Running ufl2pdelab for the target ${GEN_TARGET}" ) add_executable(${GEN_TARGET} ${GEN_MAIN} ${GEN_OPERATOR} ${GEN_DRIVER}) + + add_dependencies(generation ${GEN_TARGET}) endfunction() diff --git a/dune.module b/dune.module index b1c8deb6e19e75ee12efb37d97d75a6698e6fbff..1de6983797e4df8b9d24349e9ec799486b6097e9 100644 --- a/dune.module +++ b/dune.module @@ -7,4 +7,4 @@ Module: dune-perftool Version: 0.0 Maintainer: dominic.kempf@iwr.uni-heidelberg.de #depending on -Depends: dune-python dune-pdelab +Depends: dune-testtools dune-pdelab diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 48c409ab4f1465cd40737ef03cb070b9e55a2f52..afe634a1c6a2d42f0e52e3e44c19be2f25e2172f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,2 +1,5 @@ add_generated_executable(UFLFILE ../examples/laplace.ufl - TARGET laplace) \ No newline at end of file + TARGET laplace) + +dune_add_system_test(TARGET laplace + INIFILE laplace.mini) diff --git a/test/laplace.mini b/test/laplace.mini new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391