[OpenWalnut-Dev] Includes
Sebastian Eichelbaum
eichelbaum at informatik.uni-leipzig.de
Wed Aug 24 13:15:48 CEST 2011
Because we want to develop modules out-of-source. Absolute Paths are only used for libopenwalnut. Absolute paths are only used in modules and GUI.
With the current cmake install scripts, it is possible to install libopenwalnut and libopenwalnut-dev. Then you can use this (as you would use Qt for example) to develop your modules without the need of a complete OW source checkout.
Bye
Sebastian
On Tue, 23 Aug 2011, Alexander Wiebel wrote:
> Hi,
> why did the paths change to absolute from relative?
> Example:
>
> #include "core/common/WAssert.h"
> instead of
> #include "../../core/common/WAssert.h"
> from a module's directory
>
> Please consider the discussion we had for FAnToM (see below).
>
> Thanks for clarifying this for me.
>
> Cheers
> Alex
>
>
> -------- Original-Nachricht (anonymisisert) --------
> Betreff: Re: [FAnToM] Includes of FAnToM
> Datum: Thu, 09 Jul 2009 15:01:54 +0200
> Von: CH
> Organisation: University of Leipzig, Germany
> An: XT
> CC: List
>
> Hi,
>
> XT schrieb:
> > Hi,
> >
> > May we ask why? This new convention sounds overly cumbersome. I
> guess
> > I am just lacking a clear understanding of the problems that led to
> > that decision.
> >
> > Thanks,
> > XT
>
> Overall this should increase the building of fanton if few things
> have changed, and removes an highly unlikely strange effect, if not
> security hole.
>
> In detail, the answer is simply because
>
> (a) #include "common/src/FString.hh"
>
> it is bad for the build environment. It should be either
>
> (b) #include "../../common/src/FString.hh"
>
> or
>
> (c) #include <common/src/FString.hh>
>
> (a) is correct code, because the §16.2 of the C++ standart (current
> working draft of c++-0x) states that in the case of (a) a compiler
> should look for the included file *relative* to the including file
> and if that search fails it should treat it as (c). But the search
> for (a) always fails and forces the compiler to traverse the
> standard include directories. Also, (c) can not avoid that a system
> installed <common/src/FString.hh> is used rather than the one that
> is actually meant (although highly unlikly), and neither does (a) if
> the compiler is forced to fall back to (c).
>
> Because the search for (a) always fails it forces the compiler to do
> many unneccessary stats. Using (c) rather than (a) removes only one
> of them. I suggested to use (b) rather than (c) to minimize the
> number of search directories for includes and to improve on the
> build speed. Furthermore, (a) confuses the automatic generation of
> dependencies. I have observed that some files occur up to three
> times in the dependencies (for each object file), always using
> different paths. This can slow down the build environment,
> especially on NFS, because to determine whether a target has to be
> rebuilt, these file have to be stat as many times as they occur in
> the dependency lists.
>
> I agree that (b) looks bad, but it looks bad for a reason. It shows
> a poor modularization of FAnToM. It will probably look nicer if the
> whole directory restructuring is finished. But that won't remedy the
> original problem.
>
> Best regards,
> CH
> _______________________________________________
> OpenWalnut-Dev mailing list
> OpenWalnut-Dev at lists.informatik.uni-leipzig.de
> http://lists.informatik.uni-leipzig.de/mailman/listinfo/openwalnut-dev
>
--
Dipl.-Inf. Sebastian Eichelbaum
Universität Leipzig
Institut für Informatik
Abteilung Bild- und Signalverarbeitung
PF 100920
D-04009 Leipzig
More information about the OpenWalnut-Dev
mailing list