[Dune] building/installing dune core modules out of source directory
Markus Blatt
markus at dr-blatt.de
Tue Jan 23 20:10:08 CET 2018
Hi,
On Mon, Jan 22, 2018 at 10:01:24AM +0000, Simon Praetorius wrote:
> Hi Domonic,
>
> > DUNE_CONTROL_PATH is only used to find sources of Dune modules,
or installed versions.
> > not their builds, so the behaviour you see is to be expected. If you want to
> > build
> > a module against a specific set of build directories, the easiest way to do
> > it is
> > building it through dunecontrol with the same --builddir=... flag set as
> > when you
> > build the original set of modules.
>
> OK, I see. That's why building all the dune core modules worked fine with
> the common build-directory. But this enforces that I build all projects in
> the same directory, also if they are not core modules. This is a workflow I
> don't like.
>
I have to admit that I still do not get what you are trying to accomplish.
Do you really want to to build some modules with a specific builddir (and never install them) and later use
another builddir for others? That won't work and never did (without dunecontrol magic).
If you do not want to depend on the builddir then you have to install the modules somewhere. As was mentioned
CMake does not need dunecontrol. It is even smart enough to scan CMAKE_INSTALL_PREFIX when searching for DUNE
modules (if that is not wanted then you have to provide CMAKE_PREFIX_PATH. If you installed all modules to the
same location, then you can easily use dunecontrol, but it has to be the script from the installation location.
(Otherwise you have to set up the DUNE_CONTROL_PATH manually)
BTW I tested this setup:
Install dune-common, dune-istl with this opts file
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=$HOME/test_install"
BUILDDIR=build-dist
MAKE_FLAGS="-j4 install"
Created a new project tester in /tmp and built it with $HOME/test_install/bin/dunecontrol. works fine
Without dunecontrol (with and without additionally installed modules in the default system path):
mkdir build; cd build;cmake -DCMAKE_INSTALL_PREFIX=$HOME/test_install ../tester
Does this satisfy your needs? If not then please provide exact details about the use case.
>
> My workaround for the installation of dune modules is, to set the same
> `-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}` for all dune modules and then to add
> the cmake flag `-DCMAKE_PREFIX_PATH:PATH=${INSTALL_DIR}` in my opts file of
> my own project.
See above. No need to set both of them.
> >
> > This is from the top of my head, without trying, but I have similar
> > workflows, that
> > work nice for me.
> >
> > Best,
> > Dominic
> >
> > On Sat, Jan 20, 2018 at 2:57 PM, Simon Praetorius <
> > simon.praetorius at tu-dresden.de> wrote:
> >
> > > How can I use these build dune-modules in my own project? When I call
> > >
> > > > DUNE_CONTROL_PATH=${BUILD_DIR} dunecontrol --current all
> > >
> > > in my own dune project directory, it fails since dunecontrol can not find
> > > the `dune.module` files in the ${BUILD_DIR}/dune-xxx subdirectories that
> > > are necessary for determining the module dependencies. These files are
> > > simply not copied in the build directories.
I do not think that this is the reason. The reason is that we always assumed that all uninstalled
have the same builddir layout. This violated in your case. If you drop current, move up one directory
and use DUNE_CONTROL_PATH=${BUILD_DIR}:. it will work.
If you insist on current, you have to use the same builddir convention and the other modules must have been built already.
(Didn't even know about --current. Way too much magic in dunecontrol for my taste!)
HTH and cheers,
Markus
--
Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Pedettistr. 38, 85072 Eichstätt, Germany
Tel.: +49 (0) 160 97590858
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20180123/b011a6b4/attachment.sig>
More information about the Dune
mailing list