[Dune-devel] Install location of CMake modules

Markus Blatt markus at dr-blatt.de
Mon Jan 6 16:55:40 CET 2014


On Mon, Jan 06, 2014 at 04:11:33PM +0100, Ansgar Burchardt wrote:
> On 01/03/2014 03:40 PM, Markus Blatt wrote:
> > On Fri, Jan 03, 2014 at 02:33:01PM +0100, Ansgar Burchardt wrote:
> >> I noticed DUNE want to ship CMake modules in ${prefix}/share/cmake/modules if
> >> installed system-wide. As they have quite generic names such as
> >> "FindInkscape.cmake" or "UseLATEX.cmake", I wonder if they should go
> >> into a directory specific for DUNE instead, for example into
> >> ${prefix}/share/dune/cmake/modules[1].
> > 
> > You are totally right.
> >  
> >> However I'm not sure how cmake is supposed to find them. Does it involve
> >> dune-common-config.cmake.in? 
> > 
> > It finds them via the location given by dune-common and that involves dune-common-config.cmake.in.
> 
> So I guess dune-common-config.cmake should be installed in a location
> that cmake looks into by default.

Which is the case for the default installation prefix. The other cases
are handled by estimated guesses of dunecontrol (just like the
pkgconfig files).

> 
> > BTW: there are aome issues where I could use some insight from a
> > Debian expert, like you are one:
> > 
> >    For the debian packages the pkg-config files are installed into
> >    $prefix/lib/$multi-arch/pkconfig. This makes perfect sense as the
> >    information includes libraries which differ between architectures.
> >    I assume that the same should happen for the installation of the
> >    dune-common-config.cmake files as these contain similar
> >    information.
> > 
> >    Questions:
> >    - Shouldn't this approach also be used for the installation with
> >      autotools?
> 
> For the Debian packages, yes. But not for other systems as they don't
> use multi-arch directories.
> 
> Debian's build system passes the right value to configure via --libdir.
> So just using this should be fine.
> 

Does this mean that /usr/lib/dunemodules.lib, /usr/lib/dunecontrol,
/usr/lib/dunecontrol/dune-common,
/usr/lib/dunecontrol/dune-common/dune.module, and
/usr/lib/x86_64-linux-gnu/libdunecommon.so are only in /usr/lib,
because of inconsequent usage of libdir in DUNE and should normally be
installed in /usr/lib/x86_64-linux-gnu/, too?

> On Debian systems, gcc or dpkg-architecture can be used to query the
> multi-arch tripel:
> 
> $ gcc -print-multiarch
> x86_64-linux-gnu
> $ dpkg-architecture -qDEB_HOST_MULTIARCH
> x86_64-linux-gnu

Thanks, gcc seems to be the right tool.

Markus
-- 
Do you need more support with DUNE or HPC in general? 

Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
Tel.: +49 (0) 160 97590858  Fax: +49 (0)322 1108991658 




More information about the Dune-devel mailing list