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

Eugene Agafonov e.a.agafonov at gmail.com
Tue Jun 26 12:40:30 BST 2012


Hi,

Right, removing ~/.kdevduchain forces project re-parsing and defines are 
applied correctly.
I'll try to find out suitable scenario  and fill a bug.

Thanks a lot, Eugene Agafonov.

On 06/26/2012 01:56 PM, Andreas Pakulat wrote:
> Hi,
>
> I guess its re-using the duchain cache instead of parsing from the 
> beginning. I don't know the intended or actual semantics of the 
> corresponding code, but the parsing-trigger you see for the apply/ok 
> button is the only public API that exists. If you can find a small 
> reproduction case with a simple project, I'd suggest to file a 
> bugreport against the C++ language support.
>
> Andreas
>
> On Tue, Jun 26, 2012 at 10:36 AM, Eugene Agafonov 
> <e.a.agafonov at gmail.com <mailto:e.a.agafonov at gmail.com>> wrote:
>
>     Hi!
>
>     It seems to me the original problem I've faced is solved with
>     Custom Build plugin
>     I've finally get the plugin working.   Thanks for a great job!
>     *thumbup*
>
>     I've faced another issue: new defines are not applied immediately.
>     I've restarted kdevelop
>     several times before defines are applied.  No exact scenario yet :-(
>
>     I've added some logging into CustomBuildSystem::defines and
>     CustomBuildSystem::includeDirectories to make sure they return
>     data I've entered. They do actually but it looks like defies are
>     not applied immediately as  soon as added. It seems to me the
>     parser need to be kicked somehow.
>
>     As I can see the background parser job is started as soon as
>     Apply/OK button is applied on Custom Build build settings dialog
>     but it is not enough to apply newly defined macro.
>
>     Any ideas?
>
>
>     Thanks a lot, Eugene Agafonov.
>>
>>     On Mon, Jun 25, 2012 at 10:44 PM, Eugene Agafonov
>>     <e.a.agafonov at gmail.com <mailto: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
>>
>>
>>     _______________________________________________
>>     kdevelop mailing list
>>     kdevelop at kdevelop.org  <mailto:kdevelop at kdevelop.org>
>>     https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop
>
>
>
>     _______________________________________________
>     kdevelop mailing list
>     kdevelop at kdevelop.org <mailto:kdevelop at kdevelop.org>
>     https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop
>
>
>
>
> _______________________________________________
> kdevelop mailing list
> kdevelop at kdevelop.org
> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop/attachments/20120626/102d65f3/attachment-0001.html>


More information about the KDevelop mailing list