<div dir="ltr"><div><div>Dear Dune,<br><br></div>I have two projects of mine that I would like to share with you w.r.t. to the upcoming user/developer meeting:<br><br></div>1) dune-python<br><div>I work on a growing number of projects, that do provide python code within a dune module. I think many others are in the same situation. In that context, the question arises on how to bring together the dune buildsystem and the python way of handling distribution and installation. I have worked on a buildsystem extension, that answers those question:<br><br><a href="http://conan2.iwr.uni-heidelberg.de/git/quality/dune-python">http://conan2.iwr.uni-heidelberg.de/git/quality/dune-python</a><br><br></div><div>The summary of features is:<br></div><div>* Setup a virtualenv at configure time in the build directory<br></div><div>* Integrate the pip installation process into make install<br></div><div>* utilities helpful with python issues, such as searching
for installed packages etc.<br><br></div><div>To document this build system extension, I have experimented with Sphinx for generating CMake documentation. The result is:<br><br><a href="http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/index.html">http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/index.html</a><br><br></div><div>2) Autogenerated CMake documentation with Sphinx<br></div><div>I have written a Sphinx extension to generate above documentation. It is currently a feature of dune-python, but it could be integrated into dune-common with a reasonable amount of work. The only thing we would have to do is rewrite our in-module documentation in reStructured with the special directives provided in the extension. This does of course lead to less readable incode doc. See this example of a module:<br><br></div><div>Source: <a href="http://conan2.iwr.uni-heidelberg.de/git/quality/dune-python/blob/master/cmake/modules/CreateVirtualEnv.cmake">http://conan2.iwr.uni-heidelberg.de/git/quality/dune-python/blob/master/cmake/modules/CreateVirtualEnv.cmake</a><br><br></div><div>Output: <br>Command doc: <a href="http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/commands/create_virtualenv.html">http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/commands/create_virtualenv.html</a><br></div><div>Module doc: <a href="http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/modules/CreateVirtualEnv.html">http://conan2.iwr.uni-heidelberg.de/cmake-documentation/html/modules/CreateVirtualEnv.html</a><br><br></div><div>If somebody is willing to spend more time on this, there are lots of additional features possible with this approach, Sphinx is a mighty tool.<br><br></div><div>Best,<br></div><div>Dominic<br></div></div>