<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Great - I don't quite remember what the deal was with the PACKAGENAME. I think its the name of the</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
'namespace package', i.e., dune in your case which is the default if nor provided.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I think it is needed to allow for a different package naming convention as required for dumux for example.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Andreas</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Simon Praetorius <simon.praetorius@tu-dresden.de><br>
<b>Sent:</b> 03 April 2025 22:27<br>
<b>To:</b> dune-devel@lists.dune-project.org <dune-devel@lists.dune-project.org><br>
<b>Cc:</b> Dedner, Andreas <A.S.Dedner@warwick.ac.uk><br>
<b>Subject:</b> Re: [Dune-devel] JIT compiling of python code uses wrong compile_commands</font>
<div> </div>
</div>
<div>
<p>Ok, I might have found the problem. It was a small detail in you mail, Andres, that pointed me in a direction to investigate:</p>
<p><br>
</p>
<p>There should be a file " in the builddir of dune-vtk under python/dune/data/dune-vtk.cmake.", but I have found mine in a slightly different directory, in
<code>python/vtk/data/dune-vtk.cmake</code>. First, I though, this might have been a typo, this seems to be the problem.</p>
<p><br>
</p>
<p>How is this file generated? I don't know exactly, but it might be somehow in the dune_python_configure_bindings() macro. This macro was changed some time ago and I had to update the call from the old function to the new one. There was not indication what
the new arguments mean, in relation to the old macro parameters, so my solution in dune-vtk/python/CMakeLists.txt was
<br>
</p>
<p><br>
</p>
<div style="color:#cccccc; background-color:#1f1f1f; font-family:'Droid Sans Mono','monospace',monospace; font-weight:normal; font-size:14px; line-height:19px; white-space:pre">
<div><span style="color:#cccccc">dune_python_configure_bindings(</span></div>
<div><span style="color:#cccccc"></span><span style="color:#569cd6">PATH</span><span style="color:#cccccc">
</span><span style="color:#ce9178">"."</span></div>
<div><span style="color:#cccccc">PACKAGENAME vtk</span></div>
<div><span style="color:#cccccc">CMAKE_METADATA_FLAGS DUNE_OPTS_FILE</span></div>
<div><span style="color:#cccccc">)</span></div>
</div>
<p></p>
<p><br>
</p>
<p>I named the package "vtk". This seems to be a problem. I don't know where this "PACKAGENAME" argument might be used, but it generates the file in the wrong directory, which is then not found in the whole machinery.
<br>
</p>
<p>Removing this argument made the file dune-vtk.cmake appear in the correct directory and also the compile_command.json (and the CMakeLists file that it is generated from) contain the dune-vtk directory.</p>
<p><br>
</p>
<p>Thanks for the hints and the questions where to start looking.</p>
<p><br>
</p>
<p>Best,<br>
Simon<br>
</p>
<p><br>
</p>
<div class="x_moz-cite-prefix">Am 03.04.25 um 23:12 schrieb Simon Praetorius:<br>
</div>
<blockquote type="cite">
<p>Hi Andreas,</p>
<p><br>
</p>
<p>thanks for the hints already. I have followed your questions (see below), but still one step in the middle seems to fail.<br>
</p>
<br>
<blockquote type="cite"><style type="text/css" style="display:none">
<!--
p
{margin-top:0;
margin-bottom:0}
-->
</style>
<div class="x_elementToProof" style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<code style="font-family:Calibri,Helvetica,sans-serif">My first question would be:</code></div>
<div class="x_elementToProof" style="font-size:12pt; color:rgb(0,0,0)"><span style="font-family:Calibri,Helvetica,sans-serif"><code style="font-family:Calibri,Helvetica,sans-serif">what does</code></span><span style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif"><code> build/run-in-dune-venv.py
pip list | grep dune </code>give you? Most importantly does it list dune-vtk?</span></div>
</blockquote>
<p>Yes, dune-vtk is listed there<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
If that is found by pip then check the `dune-py/CMakeLists.txt` file if the line <code>
set(dune-vtk_DIR PATH) </code><span style="font-family:Calibri,Helvetica,sans-serif"><code style="font-family:Calibri,Helvetica,sans-serif">is there.
<br>
</code></span></div>
</blockquote>
<p>The dune-py/CMakeLists.txt does **not** contain the vtk dir or anything else from dune-vtk (e.g. no HAVE_DUNE_VTK variable)<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:Calibri,Helvetica,sans-serif"><code style="font-family:Calibri,Helvetica,sans-serif"><br>
The path comes from the </code><code>metadata </code></span>file which should be in the builddir of dune-vtk under
<code>python/dune/data/dune-vtk.cmake</code>.</div>
</blockquote>
<p>The dune-vtk.cmake file exists and contains the following lines (and a few more)<br>
</p>
<p><br>
</p>
<div style="color:#cccccc; background-color:#1f1f1f; font-family:'Droid Sans Mono','monospace',monospace; font-weight:normal; font-size:14px; line-height:19px; white-space:pre">
<div><span style="color:#cccccc">DEPBUILDDIRS=/opt/sources/dune/dune-vtk/build/gcc14-debug;/opt/sources/dune/dune-common/build/gcc14-debug;/opt/sources/dune/dune-geometry/build/gcc14-debug;/opt/sources/dune/dune-localfunctions/build/gcc14-debug;/opt/sources/dune/dune-uggrid/build/gcc14-debug;/opt/sources/dune/dune-grid/build/gcc14-debug;/opt/sources/dune/dune-istl/build/gcc14-debug;/opt/sources/dune/dune-typetree/build/gcc14-debug;/opt/sources/dune/dune-functions/build/gcc14-debug;/opt/sources/dune/dune-alugrid/build/gcc14-debug;/opt/sources/dune/dune-foamgrid/build/gcc14-debug</span></div>
<div><span style="color:#cccccc">DEPS=dune-vtk dune-common dune-geometry dune-localfunctions dune-uggrid dune-grid dune-istl dune-typetree dune-functions dune-alugrid dune-foamgrid</span></div>
</div>
<p><br>
</p>
<p>This indicates that the metadata is correct, but somehow ignored.<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Only after all that looks correct I would check the <code>compile_commands.json</code> file.</div>
</blockquote>
<p>This file also does not contain the required include directories of dune-vtk.<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
That is generated in python/dune/generator/cmakebuilder.py:547</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
by compiling a empty cc and extracting the information from the files that cmake generated.</div>
</blockquote>
<p>Since the CMakeLists.txt file in the dune-py dir is incomplete, the generated compile_commands cannot be correct either. So, now the question is, how is this CMakeLists file generated. How can I inspect or activate the logging tools? And where to find the
log output? Maybe there is an information that helps.<br>
</p>
<p><br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
I guess this step depends on internal structures of cmake generated files (i.e. link.txt' and could possibly fail with some newer CMake version.</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Best</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Andreas</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Dune-devel
<a class="x_moz-txt-link-rfc2396E" href="mailto:dune-devel-bounces@lists.dune-project.org">
<dune-devel-bounces@lists.dune-project.org></a> on behalf of Simon Praetorius <a class="x_moz-txt-link-rfc2396E" href="mailto:simon.praetorius@tu-dresden.de">
<simon.praetorius@tu-dresden.de></a><br>
<b>Sent:</b> 03 April 2025 20:04<br>
<b>To:</b> <a class="x_moz-txt-link-abbreviated x_moz-txt-link-freetext" href="mailto:dune-devel@lists.dune-project.org">
dune-devel@lists.dune-project.org</a> <a class="x_moz-txt-link-rfc2396E" href="mailto:dune-devel@lists.dune-project.org">
<dune-devel@lists.dune-project.org></a><br>
<b>Subject:</b> [Dune-devel] JIT compiling of python code uses wrong compile_commands</font>
<div> </div>
</div>
<div>
<p>Hi everyone,</p>
<p>I have posted a question already in the Dune support channel, but maybe here in the mailing list are more python experts:</p>
<p><span class="x_x_mx_EventTile_body x_x_markdown-body x_x_translate"></span></p>
<p>I am currently trying to run a simple Python example in the dune-vtk module, i.e.
<code>dune/python/test/testvtk.py</code>. I have built everything without a user specified venv, using the default that is created in the build directory. To run the code, I use the script
<code>build/run-in-dune-venv.py</code> in my build directory <code>build/</code>. The problem I have is: The JIT compilation step uses an incomplete list of include directories. In particular, the include dirs from dune-vtk are not there. This can be seen in
the <code>compile_commands.json</code> file, which is located in the dune-py directory in the dune-common build directory
<code>build/dune-venv/.cache/dune-py</code>.</p>
<p>The error I get is "fatal error: dune/python/vtk/writer.hh: file or directory not found".</p>
<p>Can anyone tell me how this <code>compile_commands.json</code> file is generated? I am trying to figure out why it does not include all the include directories of the modules involved.</p>
<p>Best, Simon<br>
</p>
</div>
</blockquote>
</blockquote>
</div>
</body>
</html>