Issue with parsing of conditionally compiled code or how to force parser to process the code under conditional compilation

Andreas Pakulat apaku at gmx.de
Mon Jun 25 22:51:35 BST 2012


On Mon, Jun 25, 2012 at 10:44 PM, Eugene Agafonov <e.a.agafonov at gmail.com>wrote:

> Hi!
>
> I've faced an annoying issue with C++ parser. It does not enable
> declaration-definition navigation if it decides the code is not compiled
> due to conditional compilation.
> It is really predictable behavior but it is an issue if macro is not
> defined in any header file but defined as compiler command line option.
>
> The main question is: Is it possible to tell the parser that some macro is
> actually defined somewhere in universe and it shall threat it as defined
> while parsing the source code.
>

Yes, this is typically the job of the buildsystem manager, the parser asks
it about the defines for a given file/folder or target and the buildsystem
manager should provide them based on the selected build directory


> Any way, it would be useful to set macro value for parsing  as it is done
> for custom include paths.
>

If you have cmake, then the parser not getting all the defines is to be
considered a bug, though there are ways of using cmake which kdevelop
cannot support.

If you use some other buildsystem, I'd suggest using the Custom Buildsystem
Plugin:
https://projects.kde.org/projects/extragear/kdevelop/plugins/kdev-custom-buildsystem

It allows to configure which defines should be set for which source folder
of the project and the parser will be able to fetch this information.

Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop/attachments/20120625/2e559c3d/attachment-0001.html>


More information about the KDevelop mailing list